Php Mysql条件案例查询-找出每个条件返回的行数

Php Mysql条件案例查询-找出每个条件返回的行数,php,mysql,Php,Mysql,请查看此条件mysql查询: SELECT attr1,attr2,attr3 FROM table WHERE ( attr1 LIKE '%cond1%' OR attr1 LIKE '%cond2%' ) OR ( attr2 BETWEEN '30' AND '45' ) OR ( attr3 IN ('cond3') AND attr3 = 'cond4' AND attr3 BETWEEN '18' AND '30' ) ORDER BY CASE WHEN ( at

请查看此条件mysql查询:

SELECT attr1,attr2,attr3 FROM table 
WHERE 
( attr1 LIKE '%cond1%' OR attr1 LIKE '%cond2%' ) 
OR 
( attr2 BETWEEN '30' AND '45' ) 
OR 
( attr3 IN ('cond3') AND attr3 = 'cond4' AND attr3 BETWEEN '18' AND '30' ) 
ORDER BY CASE 
WHEN ( attr1 LIKE '%cond1%' OR attr1 LIKE '%cond2%' ) THEN 1 
WHEN ( attr2 BETWEEN '30' AND '45' ) THEN 2 
ELSE 3 
END
有没有办法通过mysql和php获得每个条件返回的行数?或者至少是条件3


例如,我需要一种方法来知道条件3返回了200行,并将该值存储到php变量中。

当。。。然后。。。其他的以
SUM
结束(或
COUNT
使用
NULL
作为
ELSE
结果)作为
选择的表达式。使用上面给出的示例,您可以执行以下操作:

SELECT
    SUM(CASE WHEN attr1 LIKE '%cond1%' OR attr1 LIKE '%cond2%' THEN 1 ELSE 0 END) AS condition1count,
    SUM(CASE WHEN attr2 BETWEEN '30' AND '45' THEN 1 ELSE 0 END) AS condition2count,
    SUM(CASE WHEN attr3 IN ('cond3') AND attr3 = 'cond4' AND attr3 BETWEEN '18' AND '30' THEN 1 ELSE 0 END) AS condition3count
FROM
    table
...

但是,请记住,根据数据的内容,某些行可能与3个条件中的多个条件匹配,因此3个计数的总和可能大于返回的行数。

当。。。然后。。。其他的以
SUM
结束
(或
COUNT
使用
NULL
作为
ELSE
结果)作为
选择的表达式。使用上面给出的示例,您可以执行以下操作:

SELECT
    SUM(CASE WHEN attr1 LIKE '%cond1%' OR attr1 LIKE '%cond2%' THEN 1 ELSE 0 END) AS condition1count,
    SUM(CASE WHEN attr2 BETWEEN '30' AND '45' THEN 1 ELSE 0 END) AS condition2count,
    SUM(CASE WHEN attr3 IN ('cond3') AND attr3 = 'cond4' AND attr3 BETWEEN '18' AND '30' THEN 1 ELSE 0 END) AS condition3count
FROM
    table
...

但是,请记住,根据数据的内容,某些行可能匹配3个条件中的多个,因此,3个计数的总和可能大于返回的行数。

您应该运行两个不同的查询来获取其中一个条件的数据和结果计数。您应该运行两个不同的查询来获取其中一个条件的数据和结果计数。