75142913在线留言
mysql中limit和in同时使用出现1235 doesn't yet support 'LIMIT & IN_PHP技术_网络人

mysql中limit和in同时使用出现1235 doesn't yet support 'LIMIT & IN

Kwok 发表于:2020-01-06 21:06:25 点击:92 评论: 0

最近在优化美食网分类关系表与菜谱调用的数据库查询问题,原来使用笨方法:

SELECT `recipeid` FROM recipes_catship WHERE `catid`=1 LIMIT 0,30

先查询出来菜谱的ID,跑 while后,在循环里再根据菜谱ID查询详细信息。这样光菜谱都需要查询30次,不符合我要的风格。

想到使用 id IN(id1,id2,id3)的方式,节约数据库查询。

select * from recipes where id in (SELECT id from recipes_catship limit 0,30);

然后就报错了:

[SQL]select * from recipes where id in (SELECT id from recipes_catship limit 0,30);

[Err] 1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

这个版本的MYSQL不支持LIMIT与IN等东东同时使用云云。。。

然后搜索了一下,可以使用以下语句替换一下就可以完美支持LINMIT了:

select * from recipes where id in (SELECT ii.id from (SELECT id from recipes_catship limit 0,30) as ii);

这里只需要多嵌套一层SELECT,在最里面的嵌套里可以写上各类条件与排序。3层SELECT查询嵌套,并不会太影响速度,至少我测试出来速度是相当满意的!

除非注明,网络人的文章均为原创,转载请以链接形式标明本文地址:https://www.55mx.com/post/59
标签:mysqllimit
0
感谢打赏!

《mysql中limit和in同时使用出现1235 doesn't yet support 'LIMIT & IN》的网友评论(0)

本站推荐阅读

热门点击文章