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 に答える