2015-09-15 6 views
-1

Вот изображение, прикрепленное для мини-блога, который я проектирую для небольшого сайта. Я хотел бы сделать инструкцию SQL Select, где я получаю идентификатор блога для блогов, где находится его status = '1' и его categories LIKE '%blog%'. Как сделать один SQL-вызов, где я получаю все активные блоги, у которых есть «блог» в своей категории?SQL select на основе нескольких значений строк

enter image description here

+0

Вы что-то пробовали? Это похоже на довольно простой запрос. – Epodax

+0

Я попытался выбрать все блоги, которые в настоящее время активны, а затем послесловия я делаю инструкцию select, например. 'WHERE blog_id =: id AND field = 'categories' И данные LIKE '% blog%'' .. – Dimser

ответ

2

Вот один метод:

select b.blog_id 
from blogs b 
where (b.field = 'status' and b.data = '1') or 
     (b.field = 'categories' and b.data LIKE '%blog%') 
group by b.blog_id 
having count(*) = 2; 

Это предполагает, что "статус" и "категории" появляются только один раз. В противном случае вам необходимо:

having count(distinct field) = 2 
+0

'status' и' categories' будут отображаться только один раз для каждого 'blog_id'. – Dimser

+0

Это большое спасибо .. Если Мне нужно подсчитать количество блогов, где указаны эти учетные данные - могу ли я просто изменить «select b.blog_id from» на 'select count (*) from'? – Dimser

+0

@ Dimser. , , Нет. Вам нужно будет включить это как подзапрос, чтобы подсчитывать строки. –

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