我有一个如下表结构。
id,shipment no,status, date
1 , 2 , I, 2013-12-12
2 , 3 , I, 2013-12-12
3 , 3 , S, 2013-12-12
我需要根据日期进行过滤。我能够做到这一点,但对于给定的货件,如果存在“S”状态,我需要记录该记录,否则我需要记录“I”状态。我如何在 1 个查询中执行此操作?
最佳答案
试试这个:
SELECT a.id, a.shipmentNo, a.status, a.date
FROM (SELECT a.id, a.shipmentNo, a.status, a.date
FROM shipment a ORDER BY a.shipmentNo, FIELD(a.status, 'S', 'I')
WHERE a.date = '2013-12-12'
) A
GROUP BY a.shipmentNo
关于mysql - 根据状态选择记录(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20422473/