2012-05-24 63 views
0

我想从同一个表中选择两个数据集,而不是做两个查询我试图在一次调用中选择它们。如何选择两个不同的数据集与MySQL

首先,我想:

SELECT COUNT(*) AS `total` FROM `Messages` WHERE `id` = '1'; 

,第二个是:

SELECT COUNT(*) AS `total_read` FROM `Messages` WHERE `id` = '1' AND `read` = '1'; 

反正有这样做的一个查询?

回答

2
SELECT 
    COUNT(*) total, 
    SUM(IF(read='1',1,0)) total_read 
FROM Messages 
WHERE id='1'; 
+0

我认为这会返回很多记录....? – 2012-05-24 19:18:37

+1

它工作得很好:http://www.sqlfiddle.com/#!2/78c30/2。但是,由于它是一个mysql关键字,因此您需要在'read'处添加刻度线。 – mellamokb

+0

我总是使用刻度标记,因为它更容易读取SQL。 – OpensaurusRex