ホームページ >データベース >mysql チュートリアル >SQL で「サブクエリは複数の行を返します」エラーを修正する方法?
サブクエリを使用する場合、「サブクエリは 1 行以上を返します。」というイライラするエラーが発生することは珍しくありません。 」この問題は、サブクエリが単一の値を返すことが期待されているのに、代わりに複数の行が返される場合に発生します。このエラーを解決してクエリを正常に実行するには、サブクエリの適切な使用法を理解することが重要です。
指定された例では、サブクエリを使用して複数の行が返され、それがメイン クエリで参照されて設定されます。 IDフィールド。ただし、= は単一の値を返すサブクエリのみを評価できるため、この方法では前述のエラーが発生します。
この問題を解決するには、代わりに IN 演算子を使用する必要があります。IN 演算子は、複数の値を返すサブクエリを評価するように設計されています。価値観。 IN を使用すると、ID フィールドがサブクエリによって返される値のいずれかと一致するように指定できます。
IN の正しい使用法を示す例を次に示します。
SELECT * FROM table WHERE id IN (multiple row query);
たとえば、サブクエリが値 1、2、および 3 を返す場合、id フィールドは 1 または 2 または 3 に設定され、結果が返される複数の値に基づいて効果的にフィルタリングされます。
IN を使用すると、複数の行を返すサブクエリを効果的に処理でき、「サブクエリは複数の行を返します」エラーが発生することなくクエリが正常に実行されるようになります。
以上がSQL で「サブクエリは複数の行を返します」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。