mysql UNION 有重复的数据,怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql UNION 有重复的数据,怎么解决相关的知识,希望对你有一定的参考价值。

union是唯一标识,既然是唯一,就不能重复,如果是有重复就不算是唯一。
建议union采用uuid,或者自增序列。
参考技术A 不知道你原始需求, 有可能可以找到更简洁的写法,

select ...., group_concat(xh) as cxh
from
(
SELECT * , 1 AS xh
FROM text
WHERE (
id <312
AND `title` LIKE '%德国%'
AND `title` LIKE '%丹麦%'
)
UNION SELECT * , 2 AS xh
FROM text
WHERE (
id <312
AND `title` LIKE '%德国%'
OR `title` LIKE '%丹麦%'
)
) temp
group by ....
where cxh in (1,2)
ORDER BY cxh
LIMIT 6本回答被提问者采纳

UNION 操作符

UNION 操作符:用于合并两个或多个 SELECT 语句的结果集

union查询可以把两个select语句联合起来,并且会将重复的数据合并,但有一个最基础的条件:查询的列数必须相同,不然就会报错

MySQL中,两个列的数据类型可以不一样,但是在Oracle中,必须保持数据类型相同

例:

mysql> select dname from dept
    -> union
    -> select ename from emp;
+------------+
| dname      |
+------------+
| accounting |
| research   |
| sales      |
| operations |
| SMITH      |
| ALLEN      |
| WARD       |
| JONES      |
| MARTIN     |
| BLAKE      |
| CLARK      |
| SCOTT      |
| KING       |
| TURNER     |
| ADAMS      |
| JAMES      |
| FORD       |
| MILLER     |
+------------+

 

以上是关于mysql UNION 有重复的数据,怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

MySQL使用union导致数据丢失的解决办法

mysql 使用UNION ALL问题

mysql union和union all的区别

在这种情况下如何使用 UNION (MySQL) [重复]

mysql数据库基础

mysql union和union all的区别