我有如下查询。
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 的行数。
我有如下查询。
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 的行数。
所以只需对列求和:
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
尝试这个:
SELECT Id,
COUNT(CASE WHEN FIND_IN_SET('22', Category ) > 0 THEN 1 END) AS `tot_cat`
FROM tbl_doctorprofile
您可以使用以下查询,它必须对您有所帮助
SELECT COUNT(1) FROM
(SELECT Id, FIND_IN_SET('22', Category ) >0 AS `tot_cat`
FROM tbl_doctorprofile ) t WHERE t.tot_cat!=0;
你想要这个吗?
SELECT Id, FIND_IN_SET('22', Category ) >0 AS `tot_cat`
FROM tbl_doctorprofile
HAVING `tot_cat` = 1