mysql - 根据另一列的过滤器更新 SQL 列?
问题描述
我被困在一个 SQL 查询中。我想使用 sql 查询更新列状态。确切的要求是我有一个如下的 SQL 表。
_____________________________________________
start_date end_date status
---------------------------------------------
2014/01/03 | 2018/01/03 | FAILED
2016/12/15 | 2017/01/03 | SUCCESS
2014/01/03 | 2010/01/13 | FAILED
2017/10/23 | 2017/01/03 | FAILED
2014/01/03 | 2011/01/03 | FAILED
2017/11/13 | 2017/01/03 | SUCCESS
---------------------------------------------
在上表中,我有 start_date、end_date 和 status。现在我想将状态从“FAILED”更新为“SUSPEND”,其中 end_date 是所有日期中最旧的一个,start_date 相同但 end_date 不同。(这里只会更新一行,如下表所示)
我正在尝试构建查询,但无法获取所需的结果。应用正确的查询后,表应如下所示。
start_date end_date status
---------------------------------------------
2014/01/03 | 2018/01/03 | FAILED
2016/12/15 | 2017/01/03 | SUCCESS
2014/01/03 | 2010/01/13 | SUSPEND
2017/10/23 | 2017/01/03 | FAILED
2014/01/03 | 2011/01/03 | FAILED
2017/11/13 | 2017/01/03 | SUCCESS
---------------------------------------------
任何人都可以在这方面帮助我。提前致谢。
解决方案
您可以使用 where 子句进行更新。我不明白你的意思,并且 start_date 是相同的,但 end_date 是不同的,所以我没有使用它。
UPDATE table1
SET status='SUSPEND'
WHERE status='FAILED' and end_date<start_date
推荐阅读
- python - 每 X 秒后运行 python 脚本作为用户的输入
- php - 如果用户使用不存在的 id 访问会议,则将用户重定向到特定页面
- linux - 如何在 hive 查询中使用 mysql 查询结果
- spring - 让 EasyMock 在 Retry 调用期间抛出异常
- php - 在 Laravel 中,如何将所有供应商文件夹文件暂存到 bitbucket?
- react-native - React Native (Expo) 来电
- python - Pyodbc 查询只返回一行
- java - 如果我同时(从多个线程)写入 java.util.HashMap,会发生什么最糟糕的事情?
- php - 创建 Laravel 子域
- c# - Unity Tilemap 生成瓦片块