在MySQL 中將資料從一個表插入到另一個表
嘗試使用以下查詢將資料從一個表插入另一個表時:
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')
您可能會遇到錯誤訊息:
#1136 - Column count doesn't match value count at row 1
這是因為INSERT 語句中指定的列數與子查詢中提供的值的數量不符。
解決方案
要解決此問題,請使用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
在此更正的查詢中, '1 ' 狀態列的值直接在SELECT 部分中引用。透過使用 INSERT...SELECT 語法,您可以指定要插入的資料列,並從另一個表或子查詢中選擇要插入的值,確保列數和值相符。
以上是如何解決在 MySQL 中插入資料時出現「列計數與值計數不符」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!