首页  >  文章  >  数据库  >  如何解决在 MySQL 中插入数据时出现“列计数与值计数不匹配”错误?

如何解决在 MySQL 中插入数据时出现“列计数与值计数不匹配”错误?

DDD
DDD原创
2024-10-26 18:24:29390浏览

How to Resolve

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn