【发布时间】:2012-08-24 00:37:43
【问题描述】:
有SQL表:
CREATE TABLE IF NOT EXISTS `MyTable` (
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`MyVar` varchar(40) DEFAULT NULL,
PRIMARY KEY (`id`)
)
还有两个 PHP 数组 arr1[]=array("abc","bcd") 和 arr2[]=array("abc","cde")。
假设我已将 arr1[] 值保存到 SQL 表中。现在假设我需要将 arr2[] 值保存到同一个 SQL 表中。为了避免重复保存“abc”条目,我需要编写哪个 SQL INSERT 查询?结果必须是:
MyTable:
1 | abc
2 | bcd
3 | cde
但不是:
MyTable:
1 | abc
2 | bcd
3 | abc
4 | cde
更新: 也许应该以忽略重复条目的方式创建/定义 MyTable?
【问题讨论】:
-
为您的 MyVar 列设置唯一约束。所以试图插入一个已经存在的值是行不通的。
-
INSERT IGNORE+ 其余查询 -
哪个重复(合并/相交数组)或(插入不存在的东西)或两者都取决于细节,但我认为那里有足够的材料可以让你找到一个好的解决方案:)