gpt4 book ai didi

mysql - 在 1 个查询中计算 2 个值

转载 作者:行者123 更新时间:2023-11-29 05:40:48 24 4
gpt4 key购买 nike

我需要帮助编写查询 (mySQL) 到

  1. 项目中的用户总数,以及
  2. 该项目中已被“禁用”的用户数

现在,我可以单独做,像这样:

SELECT count(users) FROM t1 WHERE project = 3

SELECT count(users) FROM t1 WHERE project = 3 AND status = "disabled"

但是必须有一种简单的方法将两者结合在一个查询中......

最佳答案

你可以使用联合:

mysql> SELECT count(users) AS result FROM t1 WHERE project = 3 UNION
SELECT count(users) AS result FROM t1 WHERE project = 3 AND status = "disabled"
+--------+
| result |
+--------+
| 2 |
| 1 |
+--------+

其他解决方案是子查询:

mysql> SELECT (SELECT COUNT(ID) FROM t1 WHERE project = 3) AS total_users, 
(SELECT COUNT(ID) FROM t1 WHERE project = 3 AND status = 'disabled') AS disabled_users;
+-------------+----------------+
| total_users | disabled_users |
+-------------+----------------+
| 2 | 0 |
+-------------+----------------+

无论如何,这些解决方案的真相是两个单独的查询就可以了。只有在非常大的系统上,这才是重要的。当我们查看数据库性能时,这两个将比两个单独的查询慢。我们想要这样做的唯一原因是连接到数据库的开销。

关于mysql - 在 1 个查询中计算 2 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6960898/

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