如果我運行下面的查詢:MySQL的訂單通過錯誤
select * from mysql.user order by abcdef;
的MySQL引發以下錯誤:
ERROR 1054 (42S22): Unknown column 'abcdef' in 'order clause'
如果我運行下面類似的查詢:
select * from mysql.user order by "abcdef";
MySQL現在運行查詢並忽略order by子句(因爲mysql.user表缺少一個名爲'abcdef'的列)。
這是MySQL中的錯誤嗎?爲什麼你要這個命令在短語引用時默默地失敗?在不存在的列上運行訂單時,錯誤消息是否適用?
是的,但什麼順序如果我實際上有一個名爲「abcdef」的列,會發生。那麼「abcdef」的順序會起作用嗎? – David 2010-11-19 16:58:39
它會做和現在一樣的事情,因爲「abcdef」是一個字符串,而不是一列。通過abcdef命令雖然會工作。 – aehiilrs 2010-11-19 16:59:35
+1將此與常見錯字「SELECT 8 FROM Table」進行比較,該錯誤返回...「8」。我見過的所有SQL引擎都將忠實地使用SELECT和ORDER BY常量 - 這種行爲不會偶爾發生。 :) – 2010-11-19 16:59:58