2016-12-02 68 views
0

如何从一个同桌做多COUNT(*) SELECTS ......多COUNT从同一个表中选择一个

$query = "SELECT count(*) FROM content_form WHERE read_flag = 0 "; 
$query = "SELECT count(*) FROM content_form WHERE read_flag = 1 "; 
$query = "SELECT count(*) FROM content_form WHERE read_flag = 0 "; 
+1

查询1和3完全相同。看看http://stackoverflow.com/questions/12789396/how-to-get-multiple-counts-with-one-sql-query – Xatenev

回答

0

试试这个

SELECT read_flag,count(read_flag) as cnt FROM content_form WHERE read_flag IN (0,1,....) GROUP BY read_flag 
1
$query = "SELECT sum(Case when read_flag=0 then 1 else 0 end) as ReadFlag0Cnt, 
        sum(Case when read_flag=1 then 1 else 0 end) as ReadFlag1Cnt 
       FROM content_form"; 
You can use case statement 
+1

@AkshayBhat - 而不是COUNT,它应该是 - $作为ReadFlag0Cnt, SUM(当read_flag = 1,然后1 else 0结束时的情况)作为ReadFlag1Cnt FROM content_form“;查询=”SELECT SUM(case when read_flag = 0 then 1 else 0 end) –

+0

@ganesh更新了我的答案 –

0

你可以试试这个:

$query = "select (SELECT count(*) FROM content_form WHERE read_flag = 0) 
as flag0, (SELECT count(*) FROM content_form WHERE read_flag = 1) as flag1, 
(SELECT count(*) FROM content_form WHERE read_flag = 0) as flag0) from content_form";