MYQSL,如果查询与同一列/属性的多个条件匹配,则获取唯一的行



我试了很多次,但都查询完了,请帮帮我,我有下表。

ID   Name             event                transaction_number
--------------------------------------------------------
118  John            paymentSend                   001
118  John            paymentFailed                 002
118  John            paymentInProcess              003
118  John            notPaid                       004
118  John            paymentStucked                005
118  John            paymentSuccess                006

我想知道";John";,支付了金额,我可以很容易地使用";paymentSuccess";,但我也想知道如果付款完成或失败,我有";paymentFailed";现有记录,所以我想问一下"paymentFailed"&amp"paymentSuccess";不存在,所以我需要查询同一列,类似

SELECT * 
from users 
where event = "paymentFailed" 
AND event != "paymentSuccess"

如果付款失败,并且不存在成功,我想为所有用户请求1条记录,提前感谢。

1.-如果不存在成功,则显示失败

2.-如果两个条件都与不匹配,则显示为空

要查找所有没有支付失败和支付成功的用户,我们可以使用聚合:

SELECT ID, Name
FROM yourTable
GROUP BY ID, Name
HAVING SUM(event = 'paymentSuccess') = 0 AND SUM(event = 'paymentFailed') > 0;

最新更新