【发布时间】:2014-08-04 11:55:39
【问题描述】:
我有一个包含重复记录的单列 csv 文件。我有超过一万条记录。所以我正在使用 LOAD DATA LOCAL INFILE
示例数据:
ID
1
2
3
2
2
1
2
mysql 表被称为“小屋”。
我的第一个问题是,在 mysql 表“小屋”中插入数据时,是否可以计算每行有多少重复行。所以我希望看到如下填充的小屋表
ID count
1 2
2 4
3 1
我的第二个问题是,如果上述情况不可行,那么我当前的工作代码将返回以下内容
ID
1
2
3
$insert_query = "LOAD DATA LOCAL INFILE 'test.csv'
INTO table huts
(id)
";
if (!mysql_query($insert_query)) {
echo "Can't insert student record : " . mysql_error($connection);
} else {
echo "You have successfully insert records into huts table";
}
表结构是
CREATE TABLE `huts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=116 DEFAULT CHARSET=latin1
数据库存储引擎是'MyISAM'
没有声明唯一键,但是为什么查询忽略了重复的行。我希望查询应该插入所有行,无论是否有任何重复。
【问题讨论】:
-
您唯一的字段是 auto_increment 字段?它的主键是什么?你问为什么它不插入重复......
-
啊……抱歉,现在知道了。谢谢。关于第一个问题的任何想法。
-
不是在插入时,而是在之后
select Id, count(*) from table group by id -
然后我必须创建另一个表并插入带有 ID 的计数。
标签: php mysql load-data-infile