Mysql SQL忽略最后的值

Mysql SQL忽略最后的值,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,我尝试在数据库中插入5个数据集。SQL是这样的: INSERT INTO imdb_crawl (id, title, link) VALUES ('tt3008816', '009-1: The End of the Beginning', 80048948), ('tt2353767', '1,000 Times Good Night', 80001898), ('tt2391950', '1000 to 1: The Cory Weissman Story', 80010865),

我尝试在数据库中插入5个数据集。SQL是这样的:

INSERT INTO imdb_crawl (id, title, link) VALUES 
('tt3008816', '009-1: The End of the Beginning', 80048948), 
('tt2353767', '1,000 Times Good Night', 80001898), 
('tt2391950', '1000 to 1: The Cory Weissman Story', 80010865), 
('tt2391950', '100 Below Zero', 70273426), 
('tt2290065', '100 Bloody Acres', 70276012) 
ON DUPLICATE KEY UPDATE id = id;

我得到的回答是“加了4行”。数据库是空的。即使使用其他数据,也不会保存第一个数据集;但是我也没有出错。问题在哪里?谢谢

第三行和第四行的键相同:

('tt2391950', '1000 to 1: The Cory Weissman Story', 80010865), 
('tt2391950', '100 Below Zero', 70273426), 
因此,只添加了4行,而不是5行

在您的语句中,您有关于重复键更新id=id的语句
,但它在您的情况下不起任何作用,因为它将值
id
更新为相同的值。您需要将其更新为更有意义的内容,例如:

INSERT INTO imdb_crawl (id, title, link) VALUES 
('tt2391950', '1000 to 1: The Cory Weissman Story', 80010865), 
('tt2391950', '100 Below Zero', 70273426), 
ON DUPLICATE KEY UPDATE id = 'tt' + link;

在这种情况下,您第二行的
id
将是
tt70273426

您将插入id
tt2391950
两次,因此我怀疑第二次实际上是在更新现有记录(我从未使用过MySQL,但我假设重复键上的
就是这样做的…
位)。