MySQL の「オペランドには 1 列を含める必要があります」エラーについて
MySQL のエラー メッセージ「オペランドには 1 列を含める必要があります」 INSERT ステートメント内で使用されるサブクエリによって返される列の数に関連する構文エラーを示します。 SELECT 句。
この特定のインスタンスでは、2 つのテーブル (temp_cheques と BOOK) を結合する SELECT 句を使用して VOUCHER テーブルにレコードを挿入しようとすると、このエラーが発生しました。クエリは、SELECT 句の複数の列 (number、ID、および DENOMINATION) を 1 つの列 (VOUCHER_NUMBER) に挿入しようとしていました。
構文を修正します
エラーを解決するには、SELECT 句が 1 つの列のみを返し、それが INSERT ステートメントのターゲット列の値になることを確認する必要があります。これを実現する 1 つの方法は、提供された回答で強調表示されている正しい構文に従って、SELECT 句から括弧を削除することです。
INSERT INTO VOUCHER (VOUCHER_NUMBER) SELECT a.number FROM temp_cheques a, BOOK b WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;
追加の考慮事項
In構文の修正に加えて、BOOK とtemp_cheques には多くの行が含まれています。クエリを実行できるようにするには、回答で述べたように、クエリを実行する前に SQL_BIG_SELECTS = 1 を設定する必要がある場合があります。
以上がMySQL INSERT ステートメントで「オペランドには 1 列を含める必要があります」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。