[英]Retrieve all the group records if at least one row matches the condition in MySQL
嘗試這個
SELECT
*
FROM
yourTable
WHERE
merchant_id IN
(
SELECT
merchant_id
FROM
yourTable
WHERE
state LIKE '%FAILED')
可以說,您的表名是device_table
SELECT *
FROM device_table d1
WHERE EXISTS (
SELECT *
FROM device_table d2
WHERE d2.state like '%FAILED'
AND d1.merchant_id = d2.merchant_id
)
如果狀態列為enum類型,則查詢可以寫為
SELECT *
FROM device_table d1
WHERE EXISTS (
SELECT *
FROM device_table d2
WHERE d2.state in ('DOWNLOAD_FAILED', 'INITIATE_FAILED', etc...)
AND d1.merchant_id = d2.merchant_id
)
要么,
SELECT *
FROM device_table d1
WHERE EXISTS (
SELECT *
FROM device_table d2
WHERE d2.state not in ('INITIATE_SUCCESS')
AND d1.merchant_id = d2.merchant_id
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.