Question:This version of MySQL doesn’t yet support ‘LIMIT &
IN/ALL/ANY/SOME subquery’
select * from UserInfo where id in (select id from UserInstance limit 100);
错误代码: 1235
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
原因显而易见,如提示:mysql的这个版本是不支持IN/ALL/ANY/SOME和limit同时使用。
一般有两种解决方式
第一种,通过使用伪表的方式,进行表连接操作。
SELECT *
FROM UserInfo a
INNER JOIN (SELECT id FROM UserInstance LIMIT 100) b
ON a.id = b.id;
第二种,将in语句里面的查询再包装一层,绕过去即可。
SELECT * FROM UserInfo
WHERE id IN
(SELECT a.id FROM (SELECT id FROM UserInstanceLIMIT 100)AS a);
记录下sql语句的完整执行顺序
1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。