mysql - 根据状态选择记录(如果存在)

标签 mysql sql select group-by sql-order-by

我有一个如下表结构。

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/

相关文章:

php - 如何使用 PHP 创建没有列名的 JSON 文件?

mysql - 将数据从 MySql 同步到 Amazon RedShift

mysql - 获取当前用户 ID 并存储它

SQL 查询返回基于数组 PostgreSQL 中的值的结果

postgresql - 从存在值的表中选择?

mysql - 从另一个表中获取平均值的触发器或事件

mysql全文搜索不首先返回最相关的结果

java - 如何使用 Java Access MS Access 查询(不是普通表)?

php - 我的代码只更新数据库的最后一行而不是第二行或我想要的那一行,而且总是最后一行

ios - 无后端iOS:两个表之间的中间表