2016-09-14 27 views
0

主鍵房源通常做查詢:MySQL的 - 在錯誤的順序

select * from table 

應該通過上市以升序主鍵排序,但事實並非如此。 我認爲這是我的主鍵問題,但已使用這些命令進行修復,但不起作用。

+1

你可以舉一個你的數據和查詢產生這種行爲的例子嗎? – nasukkin

+0

「沒有工作」在2016年獲得最佳問題解答獎,這完全清楚出了什麼問題以及如何,我只是想知道爲什麼沒有人用解決方案轟炸你。 –

回答

0

在SQL中,order不是一組數據的預定義或固有屬性。

然後,不保證您的數據以預定義的順序返回。這也包括主鍵順序 如果您想要正確的順序,您必須使用ORDER BY子句明確說明。

1

MySQL絕對不能保證數據以什麼順序顯示給您,除非您提供ORDER BY聲明。

例如...

SELECT * 
FROM foo 
ORDER BY id ASC; 

這是爲了保證您的數據傷愈復出的ID進行排序的唯一途徑。否則(取決於你用於表格的引擎),它可以以任意順序返回。也許,例如,數據按行插入的順序返回,其中可能不會從ID值相對於彼此顯而易見。