您需要使用某种类型的
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';
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)