如何按数据库中的列对表进行排序?

wxiiir

我知道可以通过从表中提取数据,对其进行操作并重新插入来实现,我要问的是是否存在可以执行此操作的查询。

例如,数据库是db.db,具有表狗。该表具有id,breed,age,name列,其中id是主键和自动递增(但是可以更改此主键假设,以便找到一个好的解决方案)。

我搜索了很多东西,但是所有地方都说相同的话,只需执行以下操作:

$db->query("SELECT breed, age, name FROM Dogs ORDER BY Age DESC");  

但是,正如我之前说过的,我想对表格进行排序。这种解决方案适用于结果集,而不是表本身,这就是为什么我要提出这个问题。

更新:对不起误导了阅读我的问题的人,因为他们没有正确地构架它,我打算基于Age列对所有列进行排序,但是ID列可以保持不变,如果有帮助,那就是我正在尝试的说改变主键假设,但结果是错误的。

UPDATE2在stackoverflow上找到了另一个恰好解决了这个问题的问题,答案与用户Quim Calpe给我的答案相匹配,即创建另一个表,在其中进行处理,然后将其复制到原始表中,现在的问题就变成了,有没有一种更好的方式来完成此工作而不涉及创建另一个表呢?我想如果表太大以进行所有这些操作而不是让数据库系统以自己的方式处理它(如果它有一个这样的表)的话,它可能会变得非常耗费资源。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

奎姆·卡尔佩(Quim Calpe)

您可以执行以下操作:

<?php
$db->query("CREATE TABLE DogsSortedByAge LIKE Dogs");
$db->query("INSERT INTO DogsSortedByAge SELECT * FROM Dogs ORDER BY Age DESC");

但是您不能保证将以这种方式在磁盘上对数据进行排序...

不能认为您的要求是一个有效的用例...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章