mysql去重之if的用法の数据去重
2017-09-18 18:25
155 查看
1.首先,有一个表,表名test,数据如下:
id | name |
---|---|
1 | 张 |
1 | 董 |
1 | 朱 |
2.关联查询,使用sql:
select a.id,a.name,a1.name from test a join test a1 on a.id = a1.id and a.`name`!=a1.`name`;
id | name1 | name2 |
---|---|---|
1 | 张 | 董 |
1 | 张 | 朱 |
1 | 董 | 张 |
1 | 董 | 朱 |
1 | 朱 | 董 |
1 | 朱 | 张 |
3.去重,需要把上表数据去重,即(董,张)和(张,董)算作重复数据
select if(strcmp(a.name,a1.`name`)>0,a.`name`,a1.`name`),if(strcmp(a.name,a1.`name`)<0,a.`name`,a1.`name`) from test a join test a1 on a.id = a1.id and a.`name`!=a1.`name`;
知识点:
strcmp(a.name,a1.`name`): 当a.name<a1.`name`时,返回为负数; 当a.name==a1.`name`时,返回值= 0; 当a.name>a1.`name`时,返回正数。
if(strcmp(a.name,a1.`name`)>0,'显示这个字段','否则显示这个字段')
执行结果:
id | name1 | name2 |
---|---|---|
1 | 张 | 董 |
1 | 朱 | 张 |
1 | 张 | 董 |
1 | 朱 | 董 |
1 | 朱 | 董 |
1 | 朱 | 张 |
相关文章推荐
- Mysql实现数据的不重复写入(insert if not exists)以及新问题:ID自增不连续的解答
- mysql中isnull,ifnull,nullif的用法
- Mysql数据类型DECIMAL(M,D)用法
- PHP+MySQL之Insert Into数据插入用法分析
- mysql导入数据load data infile用法
- 记录下:Mysql导出表结构及表数据 mysqldump用法 - T00ls
- Mysql中ifNull()/if()/case when用法和Oracle中nvl()/nvl2()/decode()的用法
- Mysql导出表结构及表数据 mysqldump用法
- mysql导入数据load data infile用法
- mysql中limit的用法详解[数据分页常用]
- MySQL IFNULL()函数用法MySQL
- mysql中limit的用法详解[数据分页常用]
- mysql取前几行数据limit用法
- MySQL IFNULL()函数用法MySQL
- mysql if 用法 多个条件判断、字符串比较
- mysql中存储过程while,if用法注意
- mysql导出数据mysqldump用法
- MYSQL中更新数据超简单方法 replace into的用法 以及常规增删查改
- MySQL插入数据前检测唯一性的一些语句用法总结
- mysql中isnull,ifnull,nullif的用法