gpt4 book ai didi

mysql - 选择最大的重复行和唯一行

转载 作者:可可西里 更新时间:2023-11-01 08:17:16 35 4
gpt4 key购买 nike

我有一个像这样的 MySQL 表:

id  | header            | cat   | newsfeed  | user      | hide  | update
1 | header12345678 | Manga | news1 | william | 0 | 0
3 | header12345679 | Manga | news2 | william | 0 | 1
4 | header12345610 | Manga | news3 | william | 0 | 1
5 | 12345 | Manga | news4 | william | 0 | 0
6 | 12346 | Manga | news5 | william | 0 | 0
7 | 12347 | Manga | news6 | william | 0 | 6

我想选择重复的 update 中最大的 id,如果没有重复的,那么只选择唯一一个不是重复的.

问题是,我已经设置好了,所以原始行有 update=0 并且当 update 不为 0 时,它等于原始行的 id。

所以我希望 SQL 语句的结果是:

id  | header            | cat   | newsfeed  | user      | hide  | update
4 | header12345610 | Manga | news3 | william | 0 | 1
5 | 12345 | Manga | news4 | william | 0 | 0
7 | 12347 | Manga | news6 | william | 0 | 6

因为 id=4 具有重复项中最大的 id,id=5 没有重复项,而 id=7 具有最大的 id的重复项。

我试过这个:

SELECT *
FROM newsfeed sr1
WHERE NOT EXISTS (
SELECT *
FROM newsfeed sr2
WHERE sr1.update = sr2.update AND
sr1.id < sr2.id AND
sr2.id > 0
)

没有我想象的那么好。

最佳答案

试试这个查询我的 friend :

select * from newsfeed where id in
(select max(id) from
(select id,
case when update = 0 then id else update end update1
from newsfeed)t1
group by update1);

SQL Fiddle

关于mysql - 选择最大的重复行和唯一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22280477/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com