重复的内容

问题描述:

我想更新一个表,其中的内容ID +列已经存在。重复的内容

问题是,当我想让它给了我一个消息错误插入:

**#1062 - Duplicate entry '35' for key 1** 

所以,我尽量让一个更新,但它并没有太多工作,因为语法ISN不正确我的请求的形式SQL是:

INSERT INTO `liens_series` 
(`id`, `id_series`, `password`) 
VALUES (35, '12', 
'<br>Saison 3 en cours de production'), .... 

该列表太长。

使用这个:http://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html 它会做你想要的,插入或更新,如果必要的话。

如果插入新行其中的ID尚未确定:

INSERT INTO `liens_series` (`id`, `id_series`, `password`) VALUES (NULL, '12', '<br>Saison 3 en cours de production'); 

INSERT INTO `liens_series` (`id_series`, `password`) VALUES ('12', '<br>Saison 3 en cours de production'); 

新的ID将在LAST_INSERT_ID()(MySQL的)或mysql_insert_id()返回(C ,PHP等)。

如果要插入一行,更新其内容,如果它已经存在,则使用REPLACE INTO

REPLACE INTO `liens_series` (`id`, `id_series`, `password`) VALUES (35, '12', '<br>Saison 3 en cours de production'); 

需要注意的是在幕后,ID为35的行会被删除(如果存在的话)然后发布INSERT。因此,您无法仅部分更新该行,并且受影响的行数反映了DELETES的隐含数量+ INSERTS的数量。

您可能想要调查MySQL中INSERT语句的ON DUPLICATE KEY UPDATE子句。简而言之,您的声明可能会更改为

INSERT INTO `liens_series` 
    (`id`, `id_series`, `password`) 
VALUES 
    (35, '12', '<br>Saison 3 en cours de production') 
ON DUPLICATE KEY UPDATE `id_series` = '12', 
         `password` = '<br>Saison 3 en cours de production') 

分享和享受。