gpt4 book ai didi

mysql - 如果某些条件为真,如何简单地返回一列?

转载 作者:行者123 更新时间:2023-11-29 04:10:28 26 4
gpt4 key购买 nike

我有一个名为 A 的表:

DATETIME_START || DATETIME_END || VALUE 
---------------------------------------
2012-07-23 || 2013-07-23 || coffee
2011-13-11 || 2013-01-09 || airport

我想做的是 - 如果请求时间在 DATETIME_STARTDATETIME_END 之间,只需返回 VALUE

我试过:

SELECT 
IF (NOW() BETWEEN A.DATETIME_START AND A.DATETIME_END, VALUE,NULL)
FROM A

但结果是我在结果中得到字符串 "IF (NOW() BETWEEN A.DATETIME_START AND A.DATETIME_END, VALUE,NULL)"!

(我不想把条件放在WHERE里)

这是为什么呢?

最佳答案

列名称将是您实际选择的任何名称。假设您的选择看起来像这样:

SELECT
IF (NOW() BETWEEN A.DATETIME_START AND A.DATETIME_END, ColumnA, ColumnB)

当您可能从 2 列中获取结果时,结果集列名称应该是什么?

您甚至可能没有从任何列中进行选择:

SELECT
IF(0 < 1, 'True', 'False')

在您的特定情况下,您实际上并不需要 IF 语句,但是当您有例如SELECT 中的条件或函数,您可以使用 Alias 自己确定列名。

SELECT
IF(0 < 1, 'True', 'False') AS YourName
# or
IF(0 < 1, 'True', 'False') AS `Your name with spaces`

关于mysql - 如果某些条件为真,如何简单地返回一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12516805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com