首頁 > 資料庫 > mysql教程 > MySQL INSERT ... SELECT 錯誤:為什麼「操作數要包含 1 列」?

MySQL INSERT ... SELECT 錯誤:為什麼「操作數要包含 1 列」?

Susan Sarandon
發布: 2024-12-11 10:21:15
原創
451 人瀏覽過

MySQL INSERT ... SELECT Error: Why

MySQL:理解「運算元應包含1 欄位」語法錯誤

查詢與錯誤

當嘗試使用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子句返回單一列,而不是包含在

其他注意事項

如果更正語法後仍然遇到問題,請考慮以下事項:

  • 確保有WHERE 子句中沒有交叉連接條件,這可能會導致過多的行組合。
  • 檢查BOOK 和 temp_cheques 表中的資料大小。大型資料集可能需要增加 SQL_BIG_SELECTS 系統變數以允許更大的查詢。

以上是MySQL INSERT ... SELECT 錯誤:為什麼「操作數要包含 1 列」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板