Php 基于多行值的SQL选择

Php 基于多行值的SQL选择,php,mysql,sql,select,Php,Mysql,Sql,Select,这是我为一个小网站设计的一个迷你博客的图片。我想做一个SQL Select语句,从中获取博客id,这些博客的状态为'1'及其类别为'%blog%'。如何进行一次SQL调用,以获取所有在其类别中包含“blog”的活动博客 这里有一种方法: select b.blog_id from blogs b where (b.field = 'status' and b.data = '1') or (b.field = 'categories' and b.data LIKE '%blog%'

这是我为一个小网站设计的一个迷你博客的图片。我想做一个SQL Select语句,从中获取博客id,这些博客的
状态为'1'
及其
类别为'%blog%'
。如何进行一次SQL调用,以获取所有在其类别中包含“blog”的活动博客

这里有一种方法:

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

你试过什么吗?这看起来像是一个相当简单的查询。我试图选择当前活动的所有博客,然后在之后我做了一个select语句,例如,
其中blog\u id=:id和field='categories'和数据,如“%blog%”
。非常感谢。。如果我需要计算提供这些凭据的博客数量-我可以将
选择b.blog_id从
更改为
选择count(*)从
更改为
吗?@Dimser。不需要。您需要将其作为子查询包含以计算行数。