(SELECT field1 FROM Table1) UNION
(SELECT field1 FROM Table2);
这将从两个表中获取所有行。 有没有办法将表名添加到结果中,以便更容易地看到记录来自哪里?例如使用IF table1然后预先记录一个字符串?MYSQL UNION - 使用mysql字符串函数?
的示例记录我目前得到的是
banana
我想
t1-banana or t2-banana
(SELECT field1 FROM Table1) UNION
(SELECT field1 FROM Table2);
这将从两个表中获取所有行。 有没有办法将表名添加到结果中,以便更容易地看到记录来自哪里?例如使用IF table1然后预先记录一个字符串?MYSQL UNION - 使用mysql字符串函数?
的示例记录我目前得到的是
banana
我想
t1-banana or t2-banana
(SELECT CONCAT("t1-", field1) FROM Table1)
UNION
(SELECT CONCAT("t2-", field1) FROM Table2);
(SELECT Concat(field1 , '-Table1') FROM Table1) UNION
(SELECT Concat(field1 , '-Table2') FROM Table2);
'+'在SQL-Server中作为一个串联运算符,而不是MySQL。 – 2012-03-23 14:35:44
要在MySQL中连接字符串,请使用'CONCAT'。 – 2012-03-23 14:36:08
非常感谢,以为我表达了这个想法;) – Habib 2012-03-23 14:39:35
您可以添加表名作为第二列的值:
(SELECT field1, 'Table1' AS table_name FROM Table1)
UNION
(SELECT field1, 'Table2' AS table_name FROM Table2);
+1,这比'CONCAT'更好。 – 2012-03-23 14:37:13
+1,在MySQL端更快,使用PHP更容易检查 – 2012-03-23 15:25:49
是的。 Rocket正确回答了我的问题,但我在代码中使用了这个答案,因为它对我来说更快。谢谢 – Harry 2012-03-23 15:27:25
(SELECT field1, 't1' as table_name FROM Table1)
UNION
(SELECT field1, 't2' as table_name FROM Table2);
+1,这可能比使用'CONCAT'更好。 – 2012-03-23 14:39:03
我们**不知道**您的表格是什么样的...... – Neal 2012-03-23 14:32:20
您为什么需要这个? – 2012-03-23 14:34:11
这将使联盟运营商中的一件事无效,因为那么将会(可能)是所有唯一的行 – Habib 2012-03-23 14:36:56