为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL - 这个版本的MySQL还不支持'LIMIT&IN / ALL / ANY

MySQL - 这个版本的MySQL还不支持'LIMIT&IN / ALL / ANY

慕运维8079593 2019-08-13 10:20:34
MySQL - 这个版本的MySQL还不支持'LIMIT&IN / ALL / ANY / SOME子查询这是我正在使用的代码    $Last_Video         = $db->fetch_all('     SELECT VID, thumb     FROM video     WHERE VID IN (         SELECT VID         FROM video         WHERE title LIKE "%'.$Channel['name'].'%"         ORDER BY viewtime DESC         LIMIT 5)     ORDER BY RAND()     LIMIT 1 ');这是给我的错误 Message:   Error during SQL execution: SELECT VID, thumb FROM video WHERE VID IN ( SELECT VID FROM video WHERE title LIKE "%funny%" ORDER BY viewtime DESC LIMIT 5) ORDER BY RAND() LIMIT 1<br />  MySQL Error:   This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'<br /> MySQL Errno:    1235我怎么能解决这个问题?它的其他方式...所以我没有得到错误...
查看完整描述

3 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

您可以使用JOIN而不是IN

SELECT v.VID, v.thumb
FROM video AS v
INNER JOIN     (SELECT VID
     FROM video
     WHERE title LIKE "%'.$Channel['name'].'%"
     ORDER BY viewtime DESC
     LIMIT 5) as v2
  ON v.VID = v2.VID
ORDER BY RAND()LIMIT 1


查看完整回答
反对 回复 2019-08-13
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

您可以使用以下方法绕过此错误。

$Last_Video = $db->fetch_all('
    SELECT VID, thumb
    FROM video
    WHERE VID IN (select * from (
        SELECT VID
        FROM video
        WHERE title LIKE "%'.$Channel['name'].'%"
        ORDER BY viewtime DESC
        LIMIT 5) temp_tab)
    ORDER BY RAND()
    LIMIT 1
');


查看完整回答
反对 回复 2019-08-13
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

这里不需要子查询。试试这个:

 SELECT VID, thumb
 FROM video
 WHERE title LIKE "%'.$Channel['name'].'%"
 ORDER BY RAND() DESC
 LIMIT 1

在MySQL 5.0.26及更高版本中,您将收到错误:

对于某些子查询运算符,MySQL不支持子查询中的LIMIT:

参考


查看完整回答
反对 回复 2019-08-13
  • 3 回答
  • 0 关注
  • 1157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信