gpt4 book ai didi

mysql - SQL:根据一个字段的条件值

转载 作者:行者123 更新时间:2023-11-29 04:25:53 27 4
gpt4 key购买 nike

我已经定义:
表格 X

ID    AGE    HEIGHT   REGISTERED
1 23 1.83 1
2 24 1.81 0
3 24 1.72 0
4 22 1.91 1
5 32 1.76 0

我想执行查询以返回有效值,但 *ONLY* 用于已注册的 ID。那些没有的人将得到 0 的返回。像这样:

结果

ID    AGE    HEIGHT   REGISTERED
1 23 1.83 1
2 0 0 0
3 0 0 0
4 22 1.91 1
5 0 0 0

定义该查询的方式是什么?

最佳答案

您可以使用 MySQL 特定的 IF表达式:

SELECT 
ID,
IF(REGISTERED, AGE, 0) AS AGE,
IF(REGISTERED, HEIGHT, 0) AS HEIGHT,
REGISTERED
FROM tablex

在线查看它:sqlfiddle

您还可以使用标准 SQL CASE 表达式:

SELECT 
ID,
CASE WHEN REGISTERED = 1 THEN AGE ELSE 0 END AS AGE,
CASE WHEN REGISTERED = 1 THEN HEIGHT ELSE 0 END AS HEIGHT,
REGISTERED
FROM tablex

为了回应您的评论,如果您有很多列,这里还有一个可能会稍微容易一些:

SELECT id, AGE, HEIGHT, REGISTERED
FROM tablex
WHERE REGISTERED

UNION ALL

SELECT id, 0, 0, 0
FROM tablex
WHERE NOT REGISTERED

ORDER BY ID

在线查看它:sqlfiddle

请注意,此查询中的列列表可以缩短为仅 SELECT * 并且查询将 still work .但由于网站其他地方已介绍的各种原因,在生产代码中使用 SELECT * 是不可取的。

关于mysql - SQL:根据一个字段的条件值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11551353/

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