Mysql:This version of MySQL doesn’t yet support 錯誤

This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 錯誤解決 web

在一個Mysql表達式中使用嵌套查詢,出現了這個錯誤。緣由是內層select語句帶有limit子句。
sql

在網上查了下,有文章指出:spa

  1. 好比這樣的語句是不能正確執行的。 
    orm

  2. select * from table where id in (select id from table limit 12); it

  3. 可是,只要你再加一層就行。如: 
    io

  4. select * from table where id in (select t.id from (select * from table limit 12)as t) table

  5. 這樣就能夠繞開limit子查詢的問題。 
    select

  6. 問題解決。webkit

後來我發現,上述是解決問題的一個方法,其實還有一個更好的作法,就是把限制條件放到from而非where子句中,就沒必要出現嵌套再嵌套。方法

如上例,能夠改成:

  1. select * from (select id from table limit 12) as foo;

注意:其實as foo特別重要,若是不寫成from () as xxx的形式,即不給from後的select語句構成表名,那麼最後系統仍會報錯。
相關文章
相關標籤/搜索