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 行;如果 SELECT 正常,请检查 WHERE 并使用 SET SQL_BIG_SELECTS=1 或 SET SQL_MAX_JOIN_SIZE=#。”表示交叉引用查询可能会产生较大的结果集。要允许该操作,请在运行 INSERT 查询之前执行以下语句:
SET SQL_BIG_SELECTS = 1
请注意,这可能仍会导致较长的执行时间。
以上是为什么我的 MySQL INSERT ... SELECT 语句会导致'操作数应包含 1 列”?的详细内容。更多信息请关注PHP中文网其他相关文章!