
INSERT INTO table_listnames (name, address, tele) SELECT * FROM (SELECT 'Unknown' AS name, 'Unknown' AS address, '022' AS tele) AS tmp WHERE NOT EXISTS ( SELECT name FROM table_listnames WHERE name = 'Rupert' ) LIMIT 1; Query OK, 1 row affected (0.00 sec) Records: 1 Duplicates: 0 Warnings: 0 目前大概 1000 条 700ms,这个 sql 返回值可以记录重复的数量
1 deplivesb Sep 17, 2021 如果根据主键判断存在 我一般用 ignore |
2 aitaii Sep 17, 2021 不存在,插入 = 存在,不插入 or 存在,更新列? insert ignore into 或者 insert into on duplicate key update |
3 eason1874 Sep 17, 2021 如果 name 是唯一的,可以用 INSERT IGNORE INTO |
4 msg7086 Sep 17, 2021 唯一索引然后条件插入就行了。 |
5 wuwukai007 OP |
6 FarAhead Sep 17, 2021 |
7 quanqiubiannuan replace into |
8 dusu Sep 17, 2021 via iPhone 要快 就做倒排~ |
9 byzf Sep 18, 2021 ON DUPLICATE KEY UPDATE ? |
10 lolizeppelin Sep 21, 2021 这种都算邪道.... 正常业务新增和更新本来就是分开的 正常业务流程情况下, 发现 update 更新行数不匹配时才 insert 出现大量 update 无匹配应该检查业务流程和代码而不是走捷径 |