2

我有如下查询。

SELECT Id, FIND_IN_SET('22', Category ) >0 AS `tot_cat` 
FROM tbl_doctorprofile

我得到结果 1 在哪一行我得到值 '22' 否则 0 .. 所以结果如下所示。

Id tot_cat
----------
1    0
2    0
3    1
4    0

但我只想要值为 1 的行数。

4

4 回答 4

2

所以只需对列求和:

SELECT SUM(FIND_IN_SET('22', Category ) >0) AS `tot_cat` 
FROM tbl_doctorprofile

或正式一点更好:

SELECT COUNT(*)
WHERE FIND_IN_SET('22', Category ) > 0
FROM tbl_doctorprofile
于 2016-06-21T11:49:32.357 回答
1

尝试这个:

SELECT Id, 
       COUNT(CASE WHEN FIND_IN_SET('22', Category ) > 0 THEN 1 END) AS `tot_cat` 
FROM tbl_doctorprofile
于 2016-06-21T11:47:10.373 回答
1

您可以使用以下查询,它必须对您有所帮助

 SELECT COUNT(1) FROM 
(SELECT Id, FIND_IN_SET('22', Category ) >0 AS `tot_cat` 
FROM tbl_doctorprofile ) t WHERE t.tot_cat!=0;
于 2016-06-21T11:51:44.717 回答
0

你想要这个吗?

SELECT Id, FIND_IN_SET('22', Category ) >0 AS `tot_cat` 
FROM tbl_doctorprofile
HAVING `tot_cat` = 1
于 2016-06-21T11:48:28.680 回答