龙空技术网

MYSQL过滤表中某几个字段重复的数据

一心一意船帆 152

前言:

目前各位老铁们对“mysql 查询字段相加”都比较关注,看官们都需要知道一些“mysql 查询字段相加”的相关文章。那么小编在网摘上搜集了一些对于“mysql 查询字段相加””的相关文章,希望各位老铁们能喜欢,小伙伴们快快来了解一下吧!

场景:表中包含有group_id,worker_id,status字段,查询这三个字段是否存在重复的数据。

查找某个人在某个班组内存在多个status为0的数据

SELECT group_id,worker_id FROM worker_class_group_member WHERE `status` = 0 GROUP BY group_id, worker_id HAVING count(1) >1;

查找某个人在某个班组内存在多个status为0的数据,将最小的id选出来

SELECT MIN(id) FROM worker_class_group_member WHERE `status` = 0 GROUP BY group_id, worker_id HAVING count(1) >1;

查找某个人在某个班组内存在多个status为0的数据,将最小的id选出来,并设置status为1

UPDATE worker_class_group_member SET `status` = 1 WHERE id IN(SELECT min_id FROM (SELECT MIN(id) AS min_id  FROM worker_class_group_member WHERE `status` = 0 GROUP BY group_id, worker_id HAVING count(1) >1) AS a)

将查询查询结果作为where in的条件,需要select的结果再通过一个中间表select多一次,否则会报You can't specify target table for update in FROM clause。

标签: #mysql 查询字段相加 #mysql查询过滤某些字段