我不确定如何让标题更清晰,但这就是我的意思:
SELECT item FROM tbl WHERE tag like '%a%' OR tag like '%b%' OR tag like '%c%'
like比较函数返回true和false。这是我的问题,是否有一个功能可以跟踪它返回true和false的次数。特别是在您对项目进行GROUP和group_concat标记的情况下。
答案 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 +
+-------------+