次のクエリを実行すると:
select * from mysql.user order by abcdef;
MySQL は次のエラーをスローします。
エラー 1054 (42S22): 'order 句' の列 'abcdef' が不明です
次の同様のクエリを実行すると:
select * from mysql.user order by "abcdef";
MySQL はクエリを実行し、order by 句を無視します (mysql.user テーブルには「abcdef」という列がないため)。
これは MySQL のバグですか? 句が引用符で囲まれている場合、なぜ order by がサイレントに失敗するのですか? 存在しない列で order by を実行する場合、エラー メッセージは適切ではないでしょうか?