如何在 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 插入到具有指定状态值的 mt_magazine_subscription 中。
以上是在 MySQL 表之间传输数据时如何修复“列计数不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!