首頁 > 資料庫 > mysql教程 > 為什麼我的 MySQL INSERT 語句出現「運算元要包含 1 個欄位」錯誤?

為什麼我的 MySQL INSERT 語句出現「運算元要包含 1 個欄位」錯誤?

DDD
發布: 2024-12-17 01:59:25
原創
599 人瀏覽過

Why Does My MySQL INSERT Statement Get the

理解MySQL 的「操作數應包含1 列」錯誤

MySQL 的錯誤訊息「操作數應包含1 列」指示與INSERT 語句的SELECT中使用的子查詢傳回的列數相關的語法錯誤

在此特定實例中,當嘗試使用連接兩個表(temp_cheques 和BOOK)的SELECT 子句將記錄插入VOUCHER 表時,用戶遇到此錯誤。查詢嘗試將 SELECT 子句中的多個欄位(數字、ID 和 DENOMINATION)插入到單一欄位 (VOUCHER_NUMBER) 中。

修正語法

要解決該錯誤,使用者需要確保 SELECT 子句只傳回一列,該列將成為 INSERT 語句中目標列的值。實現此目的的一種方法是根據提供的答案中突出顯示的正確語法從SELECT 子句中刪除括號:

INSERT INTO VOUCHER (VOUCHER_NUMBER)
SELECT a.number
FROM temp_cheques a, BOOK b
WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;
登入後複製

其他注意事項

In除了更正語法之外,重要的是要注意有關交叉引用操作的警告,如果BOOK 和temp_cheques 都包含許多內容,則會導致潛在的大型查詢行。若要允許查詢執行,可能需要在執行之前設定 SQL_BIG_SELECTS = 1,如答案中所述。

以上是為什麼我的 MySQL INSERT 語句出現「運算元要包含 1 個欄位」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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