gpt4 book ai didi

php - MySQL 插入 : Avoid duplicates w/multiple cols

转载 作者:行者123 更新时间:2023-11-30 23:10:41 24 4
gpt4 key购买 nike

我基本上想将两个值 ('Val', 1) 插入到表 t1 的列 (cls, jg) 中。尽管 cls 设置为唯一,但 jg 必须以相同的值出现多次,因此 INSERT IGNORE 不起作用。因此,我必须检查 ('Val', 1) 对是否已经存在,如果不存在,我必须插入这些值。

我这样试过:

INSERT INTO t1 (`cls`,`jg`)
SELECT 'Val',1 FROM cls WHERE NOT EXISTS(
SELECT 1 FROM cls WHERE `cls`='Val' AND `jg`=1)
LIMIT 1;

但是当表为空时它不起作用,因为那时外部 select 语句不包含任何条目......

我应该如何进行?我不知道如何以不同的方式处理这个......

最佳答案

在 cls, jg 上使用唯一的复合索引。

ALTER IGNORE TABLE t1 ADD UNIQUE  INDEX(cls(200), jg)

然后使用

INSERT.. ON DUPLICATE KEY UPDATE

关于php - MySQL 插入 : Avoid duplicates w/multiple cols,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19879473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com