Php 我可以在一次查询中选择更多计数吗?
我有一个表,其中有一个名为Php 我可以在一次查询中选择更多计数吗?,php,sql,Php,Sql,我有一个表,其中有一个名为type的字段,其中可以有3行:1、2和3 现在,我根本不在乎3。我需要计算type=1和type=2的行数。我使用两个查询来完成此操作,如下所示: 查询1:选择COUNT(id)作为type='1'用户的计数 查询2:选择COUNT(id)作为type='2'用户的计数 我可以只使用一个查询来执行此操作吗?如果是,我该不该?查询看起来如何?选择类型,COUNT(id)作为COUNT SELECT type, COUNT(id) AS count FR
type
的字段,其中可以有3行:1
、2
和3
现在,我根本不在乎3
。我需要计算type=1和type=2的行数。我使用两个查询来完成此操作,如下所示:
查询1:选择COUNT(id)作为type='1'用户的计数
查询2:选择COUNT(id)作为type='2'用户的计数
我可以只使用一个查询来执行此操作吗?如果是,我该不该?查询看起来如何?选择类型,COUNT(id)作为COUNT
SELECT type,
COUNT(id) AS count
FROM users
WHERE type IN ('1','2')
GROUP BY type
来自用户
按类型分组
类型<3的
选择类型,计数(id)作为计数
来自用户
按类型分组
类型<3的
如果需要单独的数字
SELECT SUM(IF(type='1', 1, 0)), SUM(IF(type='2', 1, 0))
FROM users WHERE type IN ('1', '2')
如果你想要分开的号码
SELECT SUM(IF(type='1', 1, 0)), SUM(IF(type='2', 1, 0))
FROM users WHERE type IN ('1', '2')
复制品?在单个查询中执行此操作的“简单”方法的缺点是两个计数作为单独的行返回,因此需要额外的客户端代码来提取它们。其他答案设法以单行形式提供答案,这使客户端更容易,但在服务器上可能效率较低。重复?在单个查询中执行此操作的“简单”方法的缺点是两个计数作为单独的行返回,因此需要额外的客户端代码来提取它们。其他答案设法将答案作为一行提供,这使客户端更容易,但在服务器上可能效率较低。
SELECT SUM(IF(type='1', 1, 0)), SUM(IF(type='2', 1, 0))
FROM users WHERE type IN ('1', '2')