This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery

本文详细解析了在MySQL中使用LIMIT子句进行非IN/ALL/ANY/SOME子查询的实现方法,并通过实例展示了如何正确编写SQL语句以避免错误提示。重点介绍了使用多层嵌套查询的解决方案,确保复杂查询依然能够高效执行。

先看例子在解释表 proxy


有这样一个表,我们想帅选出 max_bid,排在前两为的所有数据。。。。即:这里最大的前两位为 500 ,200, 即:我们要帅选出max_bid 为500 和 200 的所有数据。

一开始我的想法。

select *  from proxy where max_bid in (select max_bid from proxy p  group by p.max_bid desc limit 2);

用了这个语句之后就报This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery 这个错误。

经过网上查找。

select *  from proxy where max_bid in (select price.max_bid from(select * from proxy p  group by p.max_bid desc limit 2)as price);   //正确


This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'的意思是,这版本的 MySQL 不支持使用 LIMIT 子句的 IN/ALL/ANY/SOME 子查询,即是支持非 IN/ALL/ANY/SOME 子查询的 LIMIT 子查询。

也就是说,这样的语句是不能正确执行的。 
select * from table where id in (select id from table limit 10)

但是,只要你再来一层就行。。如: 
select * from table where id in (select t.id from (select * from table limit 10)as t) 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值