首頁  >  文章  >  資料庫  >  在 MySQL 表之間傳輸資料時如何修復「列計數不匹配」錯誤?

在 MySQL 表之間傳輸資料時如何修復「列計數不匹配」錯誤?

Patricia Arquette
Patricia Arquette原創
2024-10-31 09:26:291072瀏覽

How to Fix

如何在MySQL 中將資料從一個表傳輸到另一個表

當面臨將資料從一個表傳輸到另一個表的任務時, INSERT語句可以派上用場。在您的特定情況下,您遇到查詢錯誤:

INSERT INTO mt_magazine_subscription ( 
      magazine_subscription_id, 
      subscription_name, 
      magazine_id, 
      status ) 
  VALUES ( 
      (SELECT magazine_subscription_id, 
              subscription_name, 
              magazine_id 
       FROM tbl_magazine_subscription 
       ORDER BY magazine_subscription_id ASC), '1')

錯誤訊息表示 INSERT 語句中的列數與提供的值的數量不符。這裡的問題是您嘗試將子查詢的結果作為單一值插入,這是不可能的。

解決方案:INSERT...SELECT 語法

要解決這個問題,您應該使用INSERT...SELECT 語法,它允許您直接將資料從一個表格插入到另一個表中。這是修正後的查詢:

INSERT INTO mt_magazine_subscription ( 
      magazine_subscription_id, 
      subscription_name, 
      magazine_id, 
      status ) 
SELECT magazine_subscription_id, 
       subscription_name, 
       magazine_id, 
       '1'
FROM tbl_magazine_subscription
ORDER BY magazine_subscription_id ASC

在此修改後的查詢中:

  • 子查詢用於從 tbl_magazine_subscription 中選擇適當的資料。
  • 「1」狀態列的值直接在 SELECT 子句中引用。
  • INSERT 語句和 SELECT 子句中的欄位現在匹配,解決了列計數不匹配問題。

有了這個更正後,您的查詢應該會成功地將資料從 tbl_magazine_subscription 插入到具有指定狀態值的 mt_magazine_subscription 中。

以上是在 MySQL 表之間傳輸資料時如何修復「列計數不匹配」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn