首页 > 解决方案 > MySQL中的条件字段

问题描述

是否有类似IF语句可用于 MySQL 中的选择查询?

例如,采用以下查询:

SELECT last_online, NOW() as "current_date" FROM streamers;
+---------------------+---------------------+
| last_online         | current_date        |
+---------------------+---------------------+
| 2020-07-29 01:46:20 | 2020-07-29 01:46:23 |
+---------------------+---------------------+

我希望能够执行以下操作:

mysql> SELECT offline as "YES" IF current_date - NOW() < 10s ELSE "NO" FROM streamers;
+-----------------+
| offline         | 
+-----------------+
| NO              | 
+-----------------+

标签: mysql

解决方案


是的 MySQL 有一个IF函数https://dev.mysql.com/doc/refman/8.0/en/control-flow-functions.html#function_if

IF(expr1,expr2,expr3)

如果 expr1 为 TRUE(expr1 <> 0 且 expr1 <> NULL),则 IF() 返回 expr2。否则,它返回 expr3。

所以你的查询将是,

SELECT IF(`current_date` - NOW()  < 10, "YES", "NO") as offline FROM streamers;

推荐阅读