エラー: 「このバージョンの 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 サイトの他の関連記事を参照してください。