繁体   English   中英

FIND_IN_SET SQL查询

[英]FIND_IN_SET sql query

我有如下查询。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM