mysql子查詢不支援limit問題解決

2021-08-16 23:01:16 字數 1136 閱讀 2223

this version of mysql doesn』t yet support 『limit & in/all/any/some 錯誤解決

這次國慶節回來後的測試中,在乙個mysql表示式中使用巢狀查詢,出現了這個錯誤。原因是內層select語句帶有limit子句。

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

比如這樣的語句是不能正確執行的。

select

*from

table

where id in

(select id from

table limit 12)

;

但是,只要你再加一層就行。如:

select

*from

table

where id in

(select t.id from

(select

*from

table limit 12)

as t)

這樣就可以繞開limit子查詢的問題。

問題解決。

後來我發現,上述是解決問題的乙個方法,其實還有乙個更好的做法,就是把限制條件放到from而非where子句中,就不必出現巢狀再巢狀。

如上例,可以改為:

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

注意:其實as foo特別重要,如果不寫成from () as ***的形式,即不給from後的select語句構成表名,那麼最後系統仍會報錯。

mysql不支援 MySQL不支援的特性

mysql 1 不支援物化檢視。2 不支援位圖索引。3 不支援並行查詢。4 不支援雜湊關聯,mysql的所有關聯都是巢狀迴圈關聯。不過,可以通過建立乙個雜湊索引來曲線實現。5 不允許對同一表同時進行查詢和更新。報錯 update tb1 as outer tb1 set cnt select cou...

mysql子查詢不支援limit問題解決

this version of mysql doesn t yet support limit in all any some 錯誤解決 這次國慶節回來後的測試中,在乙個mysql表示式中使用巢狀查詢,出現了這個錯誤。原因是內層select語句帶有limit子句。在網上查了下,有文章指出 比如這樣的...

mysql不支援top 支援limit

今天偶爾發現mysql居然不支援top語句,之前用hibernate記得用過top語句。原因是 mysql的確是不支援top語句,之前用的是hql語句,是hibernate幫你翻譯成mysql支援的語句的。通常hibernate的用法 select top 5 id,name,password fr...