2016-09-14 9 views
0

内のプライマリキーのリストは、通常のクエリを実行します。これは、昇順に主キー順に表示されなければならないMySQLの間違った順序

select * from table 

を、しかし、それはしていません。 私の主キーの問題だと思いますが、コマンドを使って修復しても動作しませんでした。

+1

この動作を生成するデータとクエリの例を挙げることはできますか? – nasukkin

+0

"うまくいかなかった"という言葉が2016年の最高の問題解説で賞を受賞しました。何がうまくいかなかったのか、どういうことかはっきりと分かっています。 –

答えて

0

SQLでは、orderは、データセットの事前定義されていない、または固有のプロパティではありません。

その後、あなたはexplicatally ORDER BY句を使用しなければならないことにより、適切な順序をしたい場合、これはまた、主キーの順序 含ま...あなたのデータは事前​​に定義された順序で返されていることをgaranteetedされていません。

1

ORDER BYステートメントを指定しない限り、MySQLはデータの到着順序を絶対に保証しません。例えば

...

SELECT * 
FROM foo 
ORDER BY id ASC; 

これは、あなたのデータはバックIDによって並べ替えられていますことを保証する唯一の方法です。それ以外の場合(テーブルに使用しているエンジンによって異なります)、ランダムな順序で戻ってくる可能性があります。おそらく、たとえば、データが行が挿入された順番に戻ってくる場合があります。は、お互いのid値から明らかではないかもしれません。

関連する問題