首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于IF语句的MySQL - SELECTing

基于IF语句的MySQL - SELECTing
EN

Stack Overflow用户
提问于 2010-02-03 07:16:04
回答 2查看 348关注 0票数 1

如果我有一个由字段onetwothreefour组成的MySQL-table,那么只有当某个条件为真时,我才能以某种方式使用IF语句来接收字段four吗?我必须有两组SELECT语句吗?

我能做什么(用伪代码):

代码语言:javascript
复制
SELECT one, two, three
IF (1 == 1) THEN
four
ENDIF
FROM table

或者我一定要这样做:

代码语言:javascript
复制
IF (1 == 1) THEN 
SELECT one, two, three, four
ENDIF
ELSE THEN
SELECT one, two, three
ENDIF

我只是好奇,我对此没有特别的用法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-03 07:21:01

使用:

代码语言:javascript
复制
SELECT t.one,
       t.two,
       t.three,
       CASE WHEN 1 = 1 THEN t.four ELSE NULL END AS four
  FROM TABLE t

在SELECT列表中不能有可选列-它要么包含列和适当的值,要么根本没有列。

您可以有两个(或更多)由IF语句分隔的语句,但在其中一个语句中添加一个额外的列并不理想,因为您正在将决策逻辑推入应用程序中以处理缺少列的情况。

票数 4
EN

Stack Overflow用户

发布于 2010-02-03 07:19:37

尽管您可以在一定程度上使用和IF statement,但是对于这种用例,您确实需要stored procedures

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

https://stackoverflow.com/questions/2188504

复制
相关文章

相似问题

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