我希望在mysql中使用union时包含记录的表名。 我想删除该表中的记录,否则我必须遍历所有表并查找记录并手动删除。
查询:
SELECT id FROM table1 WHERE cfid='2'
UNION
SELECT id FROM table2 WHERE ob_id='2'
UNION
SELECT id FROM table3 WHERE jid='2'
答案 0 :(得分:1)
在各个SELECT语句中包含一个鉴别器列,每个列中都有一个不同的硬编码值。例如,我们为每个查询添加一个名为src_
的列...
SELECT '1' AS src_, foo FROM bar WHERE ...
UNION ALL
SELECT '2' AS src_, grumblestilt FROM skin WHERE ...
我们可以使用该列中返回的值来确定哪个SELECT返回特定行。
注意:如果我们不需要消除重复的行,我们可以使用UNION ALL
集合运算符。 UNION
运算符将完成识别重复行的工作,并消除重复项,以便我们获得包含唯一元组的结果集。