2011-09-15 154 views
1

即时通讯使用PHP多少结果,我有这样的MySQL查询:MySQL查询和PHP:如何知道每次每个“WHERE”条件

SELECT * FROM numbers 
     WHERE 
     (XXX LIKE '999' AND YYY RLIKE '[0-9]88[0-9]') 
     OR 
     (XXX LIKE '111' AND YYY RLIKE '[0-9]23[0-9]') 

我的问题: 我怎么能知道有多少结果得到从[XXX LIKE'999'和YYY RLIKE'[0-9] 88 [0-9]')以及我得到多少结果(XXX LIKE'111'和YYY RLIKE'[0-9] 23 [0- 9]')等等。 我不想将它们分成两个查询,因为我在查询中有很多这些条件。加上我仍然想得到满足条件的结果。请帮我

回答

4
SELECT *, 
     SUM(CASE WHEN XXX LIKE '999' AND YYY RLIKE '[0-9]88[0-9]' THEN 1 ELSE 0 END) AS Count999, 
     SUM(CASE WHEN XXX LIKE '111' AND YYY RLIKE '[0-9]23[0-9]' THEN 1 ELSE 0 END) AS Count111 
    FROM numbers 
    WHERE 
    (XXX LIKE '999' AND YYY RLIKE '[0-9]88[0-9]') 
    OR 
    (XXX LIKE '111' AND YYY RLIKE '[0-9]23[0-9]') 
+0

可以告诉我如何在php变量中获得count999和count111。非常感谢你的帮助。 –

-1

使用函数mysql_num_rows

+0

mysql_num_rows将展示许多成果如何返回这个查询结果很多都不怎么有他们每个人。 – kkszysiu

+0

重新阅读问题 –

0

我认为这会是这样的:

SELECT 
    (SELECT COUNT(*) FROM numbers WHERE XXX LIKE '999' AND YYY RLIKE '[0-9]88[0-9]') AS 'CountA', 
    (SELECT COUNT(*) FROM numbers WHERE XXX LIKE '111' AND YYY RLIKE '[0-9]23[0-9]') AS 'CountB'