MySQL - Counting two things with different conditions(MySQL - 计算具有不同条件的两件事)
问题描述
我想在一个查询中计算不同条件下的两件事.
I want to count two things under different conditions in one query.
SELECT COUNT(*) AS count FROM table_name WHERE name = ?
和
SELECT COUNT(*) as count FROM table_name WHERE address = ? AND port = ?
我需要对具有特定地址和特定端口的行进行计数,并对具有特定名称的行进行单独计数.
I need to have a count for rows that have a certain address and certain port, and a SEPARATE count for rows that have a certain name.
我知道我可以做到
SELECT (COUNT*) as count FROM table_name WHERE (address = ? AND port = ?) OR name = ?
不过,这是一次计数,我需要将它们分开,以便向用户显示更准确的消息.
However that is a single count, and I need them to be separate so I can display a more accurate message to the user.
我该怎么做呢?帮助将不胜感激!
How might I go about doing this? Help would be appreciated!
推荐答案
简单点:
SELECT
SUM(IF(name = ?, 1, 0)) AS name_count,
SUM(IF(address = ? AND port = ?, 1, 0)) AS addr_count
FROM
table_name
这篇关于MySQL - 计算具有不同条件的两件事的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:MySQL - 计算具有不同条件的两件事
基础教程推荐
- 如何使用 mysql.connector 禁用查询缓存 2022-01-01
- 无法解决整理冲突 2021-01-01
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- SQL Server 实例在登录协商期间返回无效或不受支持的协议版本 2021-01-01
- 是否可以执行按位分组功能? 2021-01-01
- 在 SQL 中连接多个表 2021-01-01
- 需要 MySQL 5.1 中的抽象触发器来更新审计日志 2021-01-01
- 将 SQL Server DateTime 列迁移到 DateTimeOffset 2021-01-01
- SQL:使用来自具有相同列名的两个表中的数据... 2021-01-01
- SQL 效率:WHERE IN 子查询 vs. JOIN 然后 GROUP 2021-01-01
