mysql - 选择带有多个选择的 if 函数的查询
问题描述
我有一个查询
SELECT UserName,
IF(status=1, 'open', status) status,
IF(status=2, 'closed', status) status,
c_name
FROM ADMIN a
JOIN admin_course_ ad ON a.adminID=ad.fk_user_id
JOIN admin_courses ac ON ac.c_id=ad.fk_c_id
我的要求是我从表中得到 status=1,2,3,4 所以1 2 3 4
我不想返回open closed pending defer
所以尝试
IF(status=1, 'open', status) status,IF(status=2, 'closed', status) status
但我没有得到预期值。任何帮助将不胜感激。
解决方案
您可以使用 CASE 语句。例如:
SELECT c_name,
UserName,
(CASE status
WHEN 1 THEN 'open'
WHEN 2 THEN 'closed'
WHEN 3 THEN 'pending'
WHEN 4 THEN 'defer'
ELSE "undefined"
END) AS status_title
FROM admin a
JOIN admin_course_ ad ON a.adminID=ad.fk_user_id
JOIN admin_courses ac ON ac.c_id=ad.fk_c_id
推荐阅读
- r - 如何将使用 geom_label() 制作的标签的文本居中,其垂直位置已被 vjust 更改?(ggplot2 包)
- html - 如何防止 Swiper.js 放大 html 页面?
- spring-security - 使用 Spring Authorization Server 联合授权请求
- node.js - 如何使用节点获取
- oracle - Oracle Spatial 问题:可以使用来自另一个 Oracle 表的查询结果填充 SDO_ORDINATE_ARRAY 吗?
- sql-server - 将表从 SQL Server 传输到 Azure SQL 的最佳方式?
- scala - SBT 1.3.1 中的 OutOfMemoryError 元空间
- javascript - 如何在随机播放数组之前分配重要属性
- developer-console - 此版本不添加或删除任何应用程序包
- typescript - 在地图中使用映射类型的问题