MYSQL,如果查询与相同column/property的多个条件匹配,则获取唯一行

MYQSL, get unique row if the query match with multiple conditions for the same column/property

我试了很多次和查询,我完成了这个,请帮助我,我有以下 table。

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

我想知道“约翰”是否支付了金额,我可以轻松使用“paymentSuccess”,但我也想知道 如果付款完成或失败,我有“paymentFailed”存在的记录,所以我想问一下是否 "paymentFailed" && "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;