首頁 > 資料庫 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板