2016-06-21 2 views
2

У меня есть запрос, как показано ниже.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.

+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; 

 Смежные вопросы

  • Нет связанных вопросов^_^