2016-06-21 7 views
2

私は以下のようなクエリを持っています。FIND_IN_SET SQLクエリ

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

+0

表示する入力支援する必要がありますクエリの下に使用することができますあなたのクエリのデータ – Jens

答えて

1

はこれを試してみてくださいしている行の数だけ欲しい:

SELECT Id, 
     COUNT(CASE WHEN FIND_IN_SET('22', Category) > 0 THEN 1 END) AS `tot_cat` 
FROM tbl_doctorprofile 
0

は、あなたがこれをしたいでしたか?

SELECT Id, FIND_IN_SET('22', Category) >0 AS `tot_cat` 
FROM tbl_doctorprofile 
HAVING `tot_cat` = 1 
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 
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;