ホームページ >データベース >mysql チュートリアル >Why Does My MySQL INSERT ... SELECT Statement Result in "Operand Should Contain 1 Column(s)"?
MySQL エラー:「オペランドには 1 つの列が含まれている必要があります」
MySQL で SELECT 句を使用して INSERT ステートメントを実行すると、 「オペランドには 1 列を含める必要があります」というエラーが発生する場合があります。このエラーは、SELECT 句が複数の列を返し、INSERT ステートメントの予期された形式に違反している場合に発生します。
この問題に対処するには、SELECT 句を含む INSERT ステートメントの正しい構文に従います。
INSERT INTO MyTable (PriKey, Description) SELECT ForeignKey, Description FROM SomeView
特定のクエリで、SELECT から括弧を削除します。句:
INSERT INTO VOUCHER (VOUCHER_NUMBER, BOOK_ID, DENOMINATION) SELECT a.number, b.ID, b.DENOMINATION FROM temp_cheques a, BOOK b WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;
さらに、「SELECT では MAX_JOIN_SIZE を超える行が検査されます。WHERE を確認し、SELECT に問題がない場合は SET SQL_BIG_SELECTS=1 または SET SQL_MAX_JOIN_SIZE=# を使用してください。」というエラーが表示されます。相互参照クエリによって大きな結果セットが生成される可能性があることを示します。この操作を許可するには、INSERT クエリを実行する前に次のステートメントを実行します。
SET SQL_BIG_SELECTS = 1
これによっても実行時間が長くなる可能性があることに注意してください。
以上がWhy Does My MySQL INSERT ... SELECT Statement Result in "Operand Should Contain 1 Column(s)"?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。