質問: **環境** ・MySQL5.7 **質問** ・ORDER BY は並び順の指定なので、複数指定しても、SELECT結果内容そのものに影響を及ぼすことはないと思っていたのですが、違うのでしょうか? ・必ずしもそうとは限らない?? --- ・1つ指定した時は、期待した通り取得できるのですが、 ``` ORDER BY テーブルa.`カラム1` DESC, ``` ・2つ指定した時、取得した「a.`カラム1`」の内容が「0000」になることがあるのですが... ``` ORDER BY テーブルa.`カラム1` DESC, テーブルb.`カラム2` DESC ```
回答: 本家に近い質問があります。(Is SQL order by clause guaranteed to be stable ( by Standards)) `ORDER BY`によるソート結果は「stable」と考えないほうがよいので、 `ORDER BY`で指定したカラムで行の並び順が保たれているのであれば、指定外のカラムの出現順(行の順序)は不定と考えたほうがよいと思います。 #指定したカラムの範囲内で並び順が狂うのであれば、別の問題です。suzukis さんのコメント通り、詳細情報が必要と思います。