MySQL - 计算具有不同条件的两件事

MySQL - Counting two things with different conditions(MySQL - 计算具有不同条件的两件事)
本文介绍了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 - 计算具有不同条件的两件事的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)
SQL/MySQL: split a quantity value into multiple rows by date(SQL/MySQL:按日期将数量值拆分为多行)