mysql中使用union时如何查找哪个表包含记录

1 mysql sql union

我想要在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'
Run Code Online (Sandbox Code Playgroud)

spe*_*593 5

在各个 SELECT 语句中包含一个鉴别器列,每个语句中都有一个不同的硬编码值。作为示例,我们src_为每个查询添加一个名为的列...

SELECT '1' AS src_, foo FROM bar WHERE ...

 UNION ALL

SELECT '2' AS src_, grumblestilt FROM skin WHERE ...
Run Code Online (Sandbox Code Playgroud)

我们可以使用该列中返回的值来确定哪个 SELECT 返回了特定行。

注意:如果我们不需要消除重复行,我们可以使用UNION ALL集合运算符。该UNION运算符将完成识别重复行并消除重复项的工作,以便我们得到包含唯一元组的结果集。