查詢與錯誤
當嘗試使用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中文網其他相關文章!