我知道通過從表中獲取數據,操縱它並重新插入它是可能的,我問的是如果有查詢可以做到這一點。如何按數據庫中的列對列進行排序?
例如,數據庫是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