您的位置:首页 > 数据库 > MySQL

MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME

2016-03-03 00:00 671 查看
摘要: 错题

我在执行这句SQL的时候提示了此错误:

SELECT
*
FROM
t_product
WHERE
c_sid
IN
( SELECT
c_id
FROM
t_shops
WHERE
c_ditclass=17
ORDER BY
RAND()
limit 5
)
GROUP BY c_sid

字面意思就是这个版本的MYSQL不支持LIMIT与后面那些东西一起使用。

不明白为什么要这样设计。

因为我们将子查询语句再嵌套一下,就不会出错了。

把原来的语句:
……IN (……LIMIT)……

改为:
……IN (……FROM(……LIMIT))……
的格式,就不会出这个错了。

但现在又会提示新的错误:
Every derived table must have its own alias

就是说,每个派生的表都必须拥有别名
所以最后改为这样就不会出错了:
……IN (……FROM(……LIMIT) AS 别名)……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息