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.