Mysql SQL忽略最后的值
我尝试在数据库中插入5个数据集。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),
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
您将插入idtt2391950
两次,因此我怀疑第二次实际上是在更新现有记录(我从未使用过MySQL,但我假设重复键上的就是这样做的…
位)。