私は以下の単純なSQLを持っています。これは私のMariaDBデータベースに対して実行されます。MariaDBのORDER BY句は昇順にソートされませんか?
予想される動作は、結果が 'day'でソートされていることです。昇順。ただし、実行すると、結果はDESCENDINGの順にソートされます。非常に奇妙な。
SELECT *
FROM
(
SELECT `day`,`count`
FROM
(
SELECT
DATE(`date`) AS `day`,
COUNT(*) as `count`
FROM `message` m
GROUP BY DATE(`date`)
ORDER BY `day` DESC, `count` DESC
) AS q
ORDER BY `day` ASC
) AS q
私はの内側に、内側のクエリ、正しく作品BY外ORDER BYを
ORDERをコメントアウトし、問題なく昇順順に結果をソートした場合。 私の問題は、内部ループ内のコードが生成されているため、内部のORDER BYを削除できないことです。
なぜMariaDBはこのように動作しますか?外側のORDER BYを変更して優先権を得る方法はありますか?
注:私は、MariaDBのバージョン使用しています:10.0.24-MariaDBので
どうぞ試してください - 'count'と' day'は半予約語ですので、それらのスペルを変更してください。 –
Rick Jamesに感謝します。残念ながら、私が名前を変更しても、その動作は変わりません。 –
私はちょうど '編集'を見ています - 余分な(不要な)層を追加しました。 TomGは正しい答えを持っています。 –