我知道通过从表中获取数据,操纵它并重新插入它是可能的,我问的是如果有查询可以做到这一点。如何按数据库中的列对列进行排序?
例如,数据库是db.db中的表狗。该表具有列ID,品种,年龄,在该ID中的名称是主键和自动递增(但是为了找到一个好的解决方案,可以改变这个主键假设)。
我周围中搜索了很多,但所有地方说同样的话,只是这样做:
$db->query("SELECT breed, age, name FROM Dogs ORDER BY Age DESC");
但是,正如我曾说过,我要对表进行排序。这种解决方案适用于结果集,而不是表格本身,这就是我提出这个问题的原因。
更新:我具有误导,上面写着我的问题不正确制定它的人对不起,我打算在排序基于年龄列,但ID列所有列可以保持不变,有没有什么帮助,这正是我想改变主要关键假设时所说的,但它出错了。
UPDATE2发现,这个问题恰好地对待计算器另一个问题,答案排序的匹配已经由用户奎姆卡尔佩给我的答案,那就是,创建另一个表,做的东西在那里,然后将它复制到原始表中,现在问题变成了,是不是有更好的方法来做到这一点,而不涉及创建另一个表?我认为如果表格非常大,可以完成所有这些操作,而不是让数据库系统以它自己的方式处理它,如果它有一个是...
所以你想重新排序你的表行,基于'Age'?是否有一个原因?通常情况下,您不必担心订单,直到您需要结果。 – Sean
为什么要排序表,而不是查询的结果?数据库不会将数据存储在磁盘上的排序序列中,而是提供SQL“ORDER BY”子句以用于订购查询结果 –
@MarkBaker什么[quick](https://stackoverflow.com/questions/ 16622509/how-to-arrange-rows-of-a-table-in-as-order-and-to-save-the-table-simultan)[research](https://stackoverflow.com/questions/725717/默认排序顺序在mysql-alter-table-order-by)显示他们**可以**排序,但表和提取**都不保证**顺序(除非使用'ORDER BY' ) – kero