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