数据本来是这样的然后使用SELECT company_id,company_name,tel FROM table LIMIT 5;
SELECT company_id,company_name,tel FROM table LIMIT 5;
显示如下
然后问题就来了,使用SELECT comapny_id,company_name FROM table LIMIT 5;
SELECT comapny_id,company_name FROM table LIMIT 5;
为什么少使用了一列就会导致数据乱序输出呢?
走同样的路,发现不同的人生
テスト後、テーブルに PRIMARY KEY がある場合は PRIMARY KEY に従ってソートされます。そうでない場合は TABLE_INDEX に従ってソートされます。ただし、SHOW INDEX FROM table の後に指定したフィールドに従って並べ替えるには、明確、簡潔、理解しやすい ORDER BY xx LIMIT xx を使用することをお勧めします。 ORDER BY
PRIMARY KEY
TABLE_INDEX
SHOW INDEX FROM table
ORDER BY xx LIMIT xx
ORDER BY
これら 2 つの SQL ステートメントを説明し、タイプとキーの値が異なるかどうかを確認してください。推測では、クエリ列に応じて異なるソート方法が使用されていると思われます (おそらく mysql 自体が最適なソート方法を判断します)。したがって、order by を追加するのが最善です。重複データが見つからないように、質問者は 2 つの SQL ステートメントを試して 1 つのフィールドをクエリし、クエリが 1 つ少ないかどうかを確認してください。並べ替えの結果は異なる可能性があります。タイトルのページング状況を考慮して、order by を追加した方がよいでしょう。通常、order by はページングに追加されます。
意味を持たせるためには並べ替え列を指定する必要があります。そうでない場合は、もちろん、いくつかをランダムに指定することになります。
リーリー
使用されているインデックスを見てくださいインデックスに従ってソートされる可能性があります
主キーがなく、ソートが指定されていない場合は、カオスになります。主キーがなく、データを安定させたい場合は、主キーがデフォルトでソートされます。 、並べ替えフィールドを指定する必要があります
テスト後、テーブルに
PRIMARY KEY
がある場合はPRIMARY KEY
に従ってソートされます。そうでない場合はTABLE_INDEX
に従ってソートされます。ただし、SHOW INDEX FROM table
の後に指定したフィールドに従って並べ替えるには、明確、簡潔、理解しやすいORDER BY xx LIMIT xx
を使用することをお勧めします。ORDER BY
これら 2 つの SQL ステートメントを説明し、タイプとキーの値が異なるかどうかを確認してください。推測では、クエリ列に応じて異なるソート方法が使用されていると思われます (おそらく mysql 自体が最適なソート方法を判断します)。したがって、order by を追加するのが最善です。重複データが見つからないように、質問者は 2 つの SQL ステートメントを試して 1 つのフィールドをクエリし、クエリが 1 つ少ないかどうかを確認してください。並べ替えの結果は異なる可能性があります。タイトルのページング状況を考慮して、order by を追加した方がよいでしょう。通常、order by はページングに追加されます。
意味を持たせるためには並べ替え列を指定する必要があります。そうでない場合は、もちろん、いくつかをランダムに指定することになります。
リーリー
使用されているインデックスを見てください
インデックスに従ってソートされる可能性があります
主キーがなく、ソートが指定されていない場合は、カオスになります。主キーがなく、データを安定させたい場合は、主キーがデフォルトでソートされます。 、並べ替えフィールドを指定する必要があります