首页 > 数据库 > mysql教程 > 如何解决 MySQL 错误 1235:不支持'LIMIT & IN/ALL/ANY/SOME 子查询”?

如何解决 MySQL 错误 1235:不支持'LIMIT & IN/ALL/ANY/SOME 子查询”?

Susan Sarandon
发布: 2024-12-13 22:33:10
原创
864 人浏览过

How to Resolve MySQL Error 1235:

错误:“此版本的 MySQL 尚不支持 'LIMIT & IN/ALL/ANY/SOME 子查询'”

何时执行使用带有 LIMIT 子句和 IN 运算符的子查询的 PHP 查询,您可能会遇到类似的错误this:

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

MySQL Error: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

MySQL Errno: 1235
登录后复制

出现此错误是因为某些版本的 MySQL 不支持带有与 IN、ALL、ANY 或 SOME 运算符结合使用的 LIMIT 子句的子查询。

解决方案

要解决此问题,请考虑使用 JOIN 而不是子查询:

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
登录后复制

此修改后的查询使用 INNER JOIN 来组合两个 SELECT 语句的结果。第一个 SELECT 语句获取标题包含指定频道名称的视频的 VID,按观看时间降序排列,并将结果限制为前 5 个。然后第二个 SELECT 语句使用此 VID 列表来过滤主结果集,从视频表中获取特定列。

以上是如何解决 MySQL 错误 1235:不支持'LIMIT & IN/ALL/ANY/SOME 子查询”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板