查询和错误
当尝试使用 SELECT 子句执行 INSERT 语句时,如下所示,您会遇到错误:
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;
您收到的错误消息是:
Error: Operand should contain 1 column(s) SQLState: 21000 ErrorCode: 1241
语法更正
该错误表示 SELECT 存在语法问题条款。要解决此问题,请从 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 子句的 INSERT 语句的正确语法要求 SELECT 子句返回单个列,而不是包含在
其他注意事项
如果更正语法后仍然遇到问题,请考虑以下事项:
以上是MySQL INSERT ... SELECT 错误:为什么'操作数应包含 1 列”?的详细内容。更多信息请关注PHP中文网其他相关文章!