mysql - 案例 when then,但在 when 和 before then 内有 AND 条件

标签 mysql sql phpmyadmin

在下面的查询中,我想在 CASE 的 WHEN 和 THEN 之前添加一个 AND 条件是否可行?

例如 WHEN 'r' AND table1.name="jones"THEN 'very high'

SELECT table1.id, table1.name,
   CASE table1.event
     WHEN 'r' THEN 'very high'
     WHEN 't' THEN 'very low'
     ELSE (SELECT table2.risk FROM table2 WHERE table2.value <= table1.value
           ORDER BY table2.value DESC LIMIT 1)
   END AS risk
FROM table1
ORDER BY FIELD( table1.event, 'r', 'f', 't' ), table1.value DESC

最佳答案

你可以像这样重写你的语句来完成你想要的

SELECT table1.id, table1.name,
   CASE 
     WHEN table1.event = 'r' AND table1.name = 'jones' THEN 'very high'
     WHEN table1.event = 't' AND table1.name = 'smith' THEN 'very low'
     ELSE (SELECT table2.risk FROM table2 WHERE table2.value <= table1.value
           ORDER BY table2.value DESC LIMIT 1)
   END AS risk
FROM table1
ORDER BY FIELD( table1.event, 'r', 'f', 't' ), table1.value DESC

请注意,您需要在 CASE 语句之后删除 table1.eventdocumentation here

关于mysql - 案例 when then,但在 when 和 before then 内有 AND 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7294890/

相关文章:

MySQL - 在存储过程中的游标内使用 SELECT INTO 语句

sql - 对 SQL Server 表的行数设置限制

MySQL 错误 1036 : table is read only

phpmyadmin 显示 utf 8 但站点没有

wso2 apim/identity server docker中的Mysql连接错误

mysql - 将数千条记录从单个 txt 文件导入数据库 MySQL 的更快方法?

mysql - 在不使用 order by 和 limit 子句的情况下,查找 max 和 second max 之间的差异,按 MySql (8.0.13) 中的列分组

java - JDBC中如何获取插入ID?

mysql - 按 RAND() 排序的 SQL

mysql - 如何在没有 DROP/TRUNCATE 命令权限的情况下清空表?