ホームページ >データベース >mysql チュートリアル >MySQL エラー 1235 を解決する方法: 「LIMIT & IN/ALL/ANY/SOME subquery」はサポートされていません?

MySQL エラー 1235 を解決する方法: 「LIMIT & IN/ALL/ANY/SOME subquery」はサポートされていません?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-13 22:33:10865ブラウズ

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 句を含むサブクエリをサポートしていないために発生します。

解決策

この問題を解決するには、 subquery:

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 を使用して 2 つの SELECT ステートメントの結果を結合します。最初の SELECT ステートメントは、タイトルに指定されたチャンネル名が含まれるビデオの VID を取得し、視聴時間の降順に並べ替え、結果を最初の 5 件に制限します。次に、2 番目の SELECT ステートメントは、この VID リストを使用してメインの結果セットをフィルターします。ビデオテーブルから特定の列を取得します。

以上がMySQL エラー 1235 を解決する方法: 「LIMIT & IN/ALL/ANY/SOME subquery」はサポートされていません?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。