ホームページ >データベース >mysql チュートリアル >JOIN を使用した MySQL の「LIMIT & IN/ALL/ANY/SOME subquery」エラーを修正する方法
MySQL ネストされたクエリ エラー: 'LIMIT & IN/ALL/ANY/SOME サブクエリ' はサポートされていません
このエラーは、使用しようとすると発生しますMySQL の IN 句内に LIMIT 句を含むサブクエリ。この問題を解決する別のアプローチは、JOIN:
元のコード:
$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 ');
リファクタリングされたコードを使用することです。 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
説明:
JOIN 操作は、共通の VID 列に基づいて 2 つのテーブル (ビデオと v2) をリンクします。これにより、現在の MySQL バージョンではサポートされていない、IN 句内の LIMIT 句を使用したネストされたクエリが不要になります。
JOIN の利点:
以上がJOIN を使用した MySQL の「LIMIT & IN/ALL/ANY/SOME subquery」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。