从两个表追加数据并在MySQL中删除重复项(忽略大小写)

时间:2019-01-11 11:50:32

标签: mysql

表1名称:STAT

P2
--------
ABC     
def
ghi    

表2名称:MI

P2
--------
abc     
def
GHI    

我想要一些帮助来创建一个新表,以将这两个表追加到具有相同列名的后面 并删除忽略大小写的重复内容

预期结果 输出表3名称:组合

P2
--------
ABC     
def
ghi

如果表1和表2中的值相同,只是大小写不同,则在组合表中,该方程式可以选择任何值(即来自第一张或第二张表,但不能同时来自两者)

2 个答案:

答案 0 :(得分:1)

您正在寻找UNION

SELECT p2 FROM stat
UNION
SELECT p2 FROM mi

只会给您不同的行,而UNION ALL也会给您重复的行:

SELECT p2 FROM stat
UNION ALL
SELECT p2 FROM mi

DB Fiddle

答案 1 :(得分:1)

为此目的而创建了UNIION,这是一个setwise运算符。

CREATE TABLE newtable AS
(
    SELECT p2 COLLATE utf8_general_ci FROM STAT
     UNION
    SELECT p2 FROM MI
)

这假定两个表都使用utf8字符集。 COLLATE子句会根据您的要求忽略大小写,以不区分大小写的形式覆盖UNION操作的默认排序规则。

如果表以其他字符集存储数据,则需要适合该字符集的排序规则。