我有这样的数据示例表
id uniqueid values 1 6 0 2 6 1 3 6 2 4 6 0 5 6 1
I want result like this
id uniqueid values 2 6 1 3 6 2 4 6 0
I tried like this
select id,uniqueid,values
FROM t1
WHERE
id not in(SELECT concat(MAX(message_id_pk),',',min(message_id_pk)) FROM t1
where uniqueid=6)
and `uniqueid`=6
GROUP BY uniqueid
但它不起作用
最佳答案
您可以通过自连接获得所需的结果,内部查询将获取每个组的最大和最小 ID,外部查询将使用 minid
和 maxid 过滤掉结果
select a.*
from demo a
join (
select `uniqueid`,min(id) minid, max(id) maxid
from demo
where uniqueid=6
group by `uniqueid`
) b using(`uniqueid`)
where a.id > b.minid and a.id < b.maxid /* a.id <> b.minid and a.id <> b.maxid */
关于mysql - 如果将第一行和最后一行按特定 ID 分组,如何排除第一行和最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47095991/