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;
我试了很多次和查询,我完成了这个,请帮助我,我有以下 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;