首页 > 解决方案 > 两个表中两列之间的case语句

问题描述

我试图在 MySQL 中编写一个 case 语句(或使用任何语句),如果变量 = true,它将打印出一个值。基本上,在我的 select 语句中,如果一个表中的值为 10,则在新列中显示一个值

我正在考虑使用这样的东西:

CASE (table1.payment WHEN 10 THEN table2.type END) AS plan

以上不起作用并且有语法错误。我能做些什么来达到我想要的结果?

标签: mysql

解决方案


在您的情况下,我认为使用 IF 是最佳选择,因为它是一种检查选项(是否为 10),并且 IF 对于此类检查更快。

IF(table1.payment=10,table2.type,table1.payment) AS plan

https://www.w3schools.com/sql/func_mysql_if.asp了解更多信息。

使用案例的选项如下所示:

(CASE
WHEN table1.payment=10 THEN table2.type
ELSE table1.payment
END) AS plan

https://www.w3schools.com/sql/func_mysql_case.asp了解更多信息。

ONE check IF 和 CASE 查询的执行时间比较:

更大的结果

更大的查询

较小的结果

较小的查询


推荐阅读