首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL案例:

MYSQL案例:
EN

Stack Overflow用户
提问于 2019-08-15 15:32:11
回答 1查看 64关注 0票数 1

我有一个难题,以下SQL查询的结果会是什么,以及它是如何工作的:

代码语言:javascript
复制
SELECT ...
CASE 
     WHEN (a.FIELD=1 AND b.FIELD=2) THEN 1
     WHEN (a.FIELD=1 AND b.FIELD=3) THEN 3
     WHEN (b.FIELD=2 AND c.FIELD=1) THEN 0
        END) 

..

FROM a
LEFT JOIN b ON a.ID = b.FOREIGN_KEY
LEFT JOIN c ON b.ID = c.FOREIGN_KEY

WHERE <conditions>

所以基本上对于CASE语句来说有更多的条件是真的。MySQL是如何评估它们的?结果会是第一个真条件,还是最后一个条件?

谢谢

PS:我在MySQL文档中寻找,但是我没有找到任何提示。

EN

回答 1

Stack Overflow用户

发布于 2019-08-15 15:34:06

第一个匹配的条件获胜。

CASE

CASE WHEN search_condition THEN statement_list WHEN search_condition THEN statement_list ...ELSE statement_list结束大小写

对每个WHEN子句search_condition表达式求值,直到其中一个为真为止,此时将执行其对应的THEN子句statement_list。如果没有相等的search_condition,则执行ELSE子句statement_list。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57506238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档