如何找出MySQL比较查询返回true和false的次数?

时间:2016-07-25 20:18:41

标签: mysql

我不确定如何让标题更清晰,但这就是我的意思:

SELECT item FROM tbl WHERE tag like '%a%' OR tag like '%b%' OR tag like '%c%'

like比较函数返回true和false。这是我的问题,是否有一个功能可以跟踪它返回true和false的次数。特别是在您对项目进行GROUP和group_concat标记的情况下。

2 个答案:

答案 0 :(得分:0)

不确定这是不是你要问的。 这将作为计数返回满足三个子句中的where子句的数量。

SELECT item, (IF(tag like '%a%',1,0)+IF(tag like '%b%',1,0)+IF(tag like '%c%',1,0)) as count
FROM tb
WHERE tag like '%a%' OR tag like '%b%' OR tag like '%c%'

答案 1 :(得分:0)

如果您想知道有多少结果为真,有多少结果为假,您可以使用UNION语句:

SELECT 'true', COUNT(item) FROM tbl WHERE tag LIKE '%a%' OR tag LIKE '%b%' OR tag LIKE '%c%'
UNION
SELECT 'false', COUNT(item) FROM tbl WHERE tag NOT LIKE '%a%' AND tag NOT LIKE '%b%' AND tag NOT LIKE '%c%');

为了便于阅读,我将它们放在3行,但您可以将它写在一行,如下所示:SELECT 'true', COUNT(item) FROM tbl WHERE tag LIKE '%a%' OR tag LIKE '%b%' OR tag LIKE '%c%' UNION SELECT 'false', COUNT(item) FROM tbl WHERE tag NOT LIKE '%a%' AND tag NOT LIKE '%b%' AND tag NOT LIKE '%c%');

此查询的结果将是:

+-------------+
+ true  + 250 +
+-------+-----+
+ false + 10  +
+-------------+