如果另一个表中不存在值,则mysql插入

如果另一个表中不存在值,则mysql插入,第1张

如果另一个表中不存在值,则mysql插入

您需要使用某种类型的

INSERT...SELECt
查询

更新(在澄清之后): 例如,

t2
如果相应的行在中尚不存在,则下面是如何在其中插入行
t1

INSERT INTO t2 (v)  SELECT temp.candidate  FROM (SELECt 'test' AS candidate) temp  LEFT JOIN t1 ON t1.v = temp.candidate  WHERe t1.v IS NULL

要用同一查询插入多行,恐怕没有什么比这更好的了

INSERT INTO t2 (v)  SELECT temp.candidate  FROM (      SELECt 'test1' AS candidate      UNIOn SELECT 'test2'      UNIOn SELECT 'test3' -- etc  ) temp  LEFT JOIN t1 ON t1.v = temp.candidate  WHERe t1.v IS NULL

原始答案

例如,这将从满足该子句

other_column
所有行中提取
table1
WHERe
table2
使用用作的值插入行
column_name
。它将忽略重复的键错误。

INSERT IGNORE INTO table2 (column_name)  SELECT table1.other_column  FROM table1 WHERe table1.something == 'filter';


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5009369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存