mysql - 两个表中两列之间的case语句
问题描述
我试图在 MySQL 中编写一个 case 语句(或使用任何语句),如果变量 = true,它将打印出一个值。基本上,在我的 select 语句中,如果一个表中的值为 10,则在新列中显示一个值
我正在考虑使用这样的东西:
CASE (table1.payment WHEN 10 THEN table2.type END) AS plan
以上不起作用并且有语法错误。我能做些什么来达到我想要的结果?
解决方案
在您的情况下,我认为使用 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 查询的执行时间比较:
更大的结果
较小的结果
推荐阅读
- tensorflow - 在更新批量规范移动平均值之前在 tensorflow 中实现批量规范化,其中图形运行多次
- python - Pandas:如何通过拆分从一个多索引级别向多索引添加一个级别?
- python - 神经网络中具有不同样本大小的多个输入
- matlab - 在 Matlab 中校正照片
- javascript - 关于 Chrome 和 Firefox 中 Console.log 的问题
- json - 如何在http-server中以json格式显示日志
- python - FlaskRestPlus 如何在 url 中有一个可选参数
- testng - 得到 UnrecognizedPropertyException: Unrecognized field "noNamespaceSchemaLocation" during run "allure serve {projectpath}\target\surefire-reports"
- ios - 用于音频测量的 Swift AVFoundation 计时信息
- ios - 是否有任何原因无法初始化静态变量?