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

Posted

tags:

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

参考技术A 你这样肯定重复,如果有的数据满足你的多个条件,就会导致重复,要想不重复,可以用下面的语句:
select
*,case
when
`shop_name`
like
'%千叶%'
then
'title'
else
case
when
`shop_address`
like
'%千叶%'
then
'dz'
else
'text'
end
end
as
type
from
rice_shop_shoplist
where
`shop_name`
like
'%千叶%'
or
`shop_address`
like
'%千叶%'
or
`shop_text`
like
'%千叶%'
无需联合,使用一个语句查询出你要的数据,效果应该更高,使用case
when
...
then
...
else
...
end这样的字句获得匹配的类型。

mysql数据库中的union和union的区别(示例演示)

一、前期准备

1,安装了mysql数据库(自行百度“如何安装mysql数据库”)

2,了解一定的SQL查询等基本知识

3,推荐:为了便于使用mysql,可以安装数据库图形管理工具DBeaver。

二、进入正题

画龙点睛:union 是对数据进行并集操作,不包括重复行,同时进行默认排序而Union all 是对数据进行并集操作,包括重复行,不进行排序。如果想看示例请接着往下看。

1,建表准备数据

CREATE TABLE `student` (
  `stu_id` int(20) NOT NULL AUTO_INCREMENT,
  `stu_name` varchar(50) DEFAULT NULL COMMENT 学生姓名,
  `stu_age` int(3) DEFAULT NULL COMMENT 学生年龄,
  `stu_sex` varchar(6) DEFAULT NULL COMMENT 学生性别,
  `add_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,
  PRIMARY KEY (`stu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT=学生表

技术图片

2,插入数据:

技术图片

3,开始演示:

第一类:查询单个同样的字段进行union 或 union all操作

① 两个一样的查询语句进行union操作

技术图片

② 两个一样的查询语句进行union all查询操作:

技术图片

第二类:查询多个字段进行进行 union 或  union all操作

① union  、多个字段

 技术图片

 ② unino all 、 多个字段

 技术图片

Attention : 操作union或者union all 的注意事项:

union 或 union all查询出来的字段数得相同,如果不相同,则会出现报错的情况。

示例:

技术图片

补充说明:其他变种的union和union all查询

技术图片

 如果想对查询的结果进行排序的话,直接在后面加上 order by 语句就行了。

针对上面查询得到的数据,示例如下:

技术图片

按照stu_name降序排序,示例如下:

技术图片

 

 

额外说明:操作还需自我多动手多实践。 

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

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

mysql 使用UNION ALL问题

mysql union和union all的区别

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

mysql数据库基础

mysql union和union all的区别