可能重复:
如何在MySQL中"插入,如果不存在"?
有SQL表:
CREATE TABLE IF NOT EXISTS `MyTable` (
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`MyVar` varchar(40) DEFAULT NULL,
PRIMARY KEY (`id`)
)
Run Code Online (Sandbox Code Playgroud)
并且有两个PHP数组arr1[]=array("abc","bcd")
和arr2[]=array("abc","cde")
.
假设我已将arr1 []值保存到SQL表中.现在让我们假设我需要将arr2 []值保存到同一个SQL表中.我需要编写哪个SQL INSERT查询以避免重复保存"abc"条目?结果必须是:
MyTable:
1 | abc
2 | bcd
3 | cde
Run Code Online (Sandbox Code Playgroud)
但不是:
MyTable:
1 | abc
2 | bcd
3 | abc
4 | cde
Run Code Online (Sandbox Code Playgroud)
更新:也许应该以这样的方式创建/定义MyTable,以便忽略重复的条目?
将表中的内容设为“ MyVar
as” 。UNIQUE
像这样:
CREATE TABLE IF NOT EXISTS `MyTable` (
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`MyVar` varchar(40) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `myvaridx` (`MyVar`)
);
Run Code Online (Sandbox Code Playgroud)
或者,如果您无法重新创建表,请使用以下命令更改它
ALTER TABLE `request`
ADD UNIQUE INDEX `myvaridx` (`MyVar`)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1587 次 |
最近记录: |