1. 程式人生 > >Unknown column 'rownum' in 'where clause'解決方案

Unknown column 'rownum' in 'where clause'解決方案

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.