MySql 如果一行状态值为 5,则比较相同 table 中的行

MySql comapre rows in same table if one row status value is 5

Table结构

name surname phone email status
Jonh Red 123 johnmail 5
Mary Blue 333 marymail 0
Helen Green 234 marymail 0
Jonh Red 123 johnmail 0

我如何将这些行与姓名、姓氏、电子邮件和 phone 以及 select(显示)仅 Jonh Red 进行比较,因为该行存在两次并且其中一行的状态为 5?

提前致谢。

您可以在这里尝试聚合方法:

SELECT name, surname, phone, email
FROM yourTable
GROUP BY name, surname, phone, email
HAVING COUNT(*) > 1 AND SUM(status = 5) > 0;

这将 return 每个元组(无状态值)都重复出现并且至少有一个重复项的状态值为 5。