您的位置:首页 > 数据库 > MySQL

mysql去重之if的用法の数据去重

2017-09-18 18:25 155 查看

1.首先,有一个表,表名test,数据如下:

idname
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`;


idname1name2
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,'显示这个字段','否则显示这个字段')


执行结果:

idname1name2
1
1
1
1
1
1
然后,distinct就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql