gpt4 book ai didi

mysql - 在 MySQL 的 SELECT 子查询中使用 IF

转载 作者:行者123 更新时间:2023-11-29 02:28:19 30 4
gpt4 key购买 nike

我有以下查询:

  SELECT `users`.`id`, `login`, `fullname`, `active`, `sex`, `height`,
`special-title`, `language`, `body-fat`,
`main-photo-id`, `main-photo-offset`, `weight`,
`objective`, `level`, `config-comments-type`,
(
SELECT `type`
FROM `users-pro`
WHERE
(`user` = `users`.`id`)
AND
(`starts` <= $time)
AND(
(`ends` > $time)
OR
(`ends` IS NULL)
)
LIMIT 1
) as `account_type`
FROM `users`

我想知道如何/在何处添加 IF 语句,以便如果内部 SELECT 返回 NULL(users-pro 中没有用户条目,将返回值 1

如果没有子查询,我通常会这样做:

SELECT IF(`rank` = 1, `rank`, 0) as `rank`

但是,我不知道如何使用子查询来做到这一点。

最佳答案

您可以为此使用 ANSI 标准 coalesce() 函数,方法是将子查询包装在其中:

SELECT `users`.`id`, `login`, `fullname`, `active`, `sex`, `height`,
`special-title`, `language`, `body-fat`,
`main-photo-id`, `main-photo-offset`, `weight`,
`objective`, `level`, `config-comments-type`,
coalesce((
SELECT `type`
FROM `users-pro`
WHERE
(`user` = `users`.`id`)
AND
(`starts` <= $time)
AND(
(`ends` > $time)
OR
(`ends` IS NULL)
)
LIMIT 1
), 1) as `account_type`
FROM `users`

关于mysql - 在 MySQL 的 SELECT 子查询中使用 IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17242100/

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