mysql查询结果中去除重复的行数

新手上路,请多包涵

问题描述

clipboard.png

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
SELECT id,name,leader_id FROM ims_sqtg_sun_category WHERE ( ims_sqtg_sun_category.uniacid = '2' AND ims_sqtg_sun_category.uniacid = '2' AND ims_sqtg_sun_category.uniacid = '2' )
AND pid = 0 AND leader_id = 338 OR store_id = '0' ORDER BY index ASC

你期待的结果是什么?实际看到的错误信息又是什么?

当name一样的时候,如何取leader_id 不为0 的

阅读 3.1k
2 个回答

先依 leader_id 递减排序,再以 name 去重

SELECT id,name,leader_id
FROM (SELECT * FROM ims_sqtg_sun_category ORDER BY leader_id DESC) AS a
GROUP BY name;
(
    SELECT *
    FROM `ims_sqtg_sun_category`
    WHERE `leader_id`>0
)
UNION
(
    SELECT *
    FROM `ims_sqtg_sun_category`
    WHERE `leader_id`=0
        AND `name` NOT IN(
            SELECT DISTINCT `name`
            FROM `ims_sqtg_sun_category`
            WHERE `leader_id`>0
        )
);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题