求大佬解释下这两个SQL语句?

select id from app where id in (select id from app limit 1);
select id from app where id in (select id from (select id from app limit 1) as t);

第一个报错:

select id from app where id in (select id from app limit 1)
1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

第二个正确.

阅读 2.3k
3 个回答

其实第二个是多嵌套了一层以避免这个报错,就是mysql不支持limit和in同时出现在子查询中。
更简单的方法是把子查询放到from后面。
select id from (select id from app limit 1) subqueryname;

MySQL 就规定了 IN/ALL/ANY/SOME 子查询中不能使用 LIMIT

新手上路,请多包涵

IN/ALL/ANY/SOME 子查询中不能使用 LIMIT

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题