[英]what's wrong with this SQL statement causing column count doesn't match value count at row 1?
Mysql表(migration_terms)字段如下
oldterm count newterm seed
我使用了以下创建表语句。
CREATE TABLE `migration_terms`
(
`oldterm` varchar(255) DEFAULT NULL,
`count` smallint(6) DEFAULT '0',
`newterm` varchar(255) DEFAULT NULL,
`seed` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`seed`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
而且有效,那里没有问题。
但是当我使用下面的insert into
语句填充它时;
"INSERT INTO migration_terms
SELECT looseterm as oldterm,
COUNT(seed) AS count
FROM looseterms
GROUP BY looseterm
ORDER BY count DESC "
我得到这个错误;
Column count doesn't match value count at row 1
我不知道为什么?
如果需要松散条件表的表结构,它是由以下创建表语句创建的。
CREATE TABLE looseterms
(
`seed` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`looseterm` varchar(255)
)
如果您的select语句的列数少于表格数,则需要指定列
"INSERT INTO migration_terms
(oldterm,
count)
SELECT looseterm AS oldterm,
Count(seed) AS count
FROM looseterms
GROUP BY looseterm
ORDER BY count DESC "
如果未为INSERT ... VALUES或INSERT ... SELECT指定列名列表,则表中每一列的值都必须由VALUES列表或SELECT语句提供。 如果您不知道表中各列的顺序,请使用DESCRIBE tbl_name进行查找。
您的插入操作将添加2列数据,而表的定义包含4列
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.