Unknown column 'rownum' in 'where clause'解決方案
阿新 • • 發佈:2019-02-04
Unknown column 'rownum' in 'where clause',當在巢狀的查詢語句裡面用到rownum的時候會遇到這個問題,比如:
SELECT * FROM (select t.id,t.name from USER_INFO t where t.status=0 order by t.EMP_ID desc) _queryForTop where rownum <=10;
這條sql語句查詢的時候就會遇到Unknown column 'rownum' in 'where clause'這個錯誤。
看了下mysql官方的解釋,發現在巢狀的查詢語句中,當用到where的時候,資料的條數可能還沒有被決定, rownum這是根本都還沒出來。所以會報錯。有遇到這個問題的兄弟們,只能改一改你們的sql語句咯。
mysql官方的連結如下:http://bugs.mysql.com/bug.php?id=38879
http://dev.mysql.com/doc/refman/4.1/en/problems-with-alias.html
原來的那段文字如下:
Standard SQL disallows references to column aliases in a
WHERE
clause. This restriction is imposed because when the
WHERE
clause is evaluated, the column value may not yet have been determined.