繁体   English   中英

该SQL语句有什么问题,导致列计数与第1行的值计数不匹配?

[英]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  "

MySql文档插入语法

如果未为INSERT ... VALUES或INSERT ... SELECT指定列名列表,则表中每一列的值都必须由VALUES列表或SELECT语句提供。 如果您不知道表中各列的顺序,请使用DESCRIBE tbl_name进行查找。

您的插入操作将添加2列数据,而表的定义包含4列

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM