mysql OR子句分别对应AND子句

Cyb*_*kie 0 php mysql

我有一个用于过滤/排序数据库记录的表单.

我按作者,类别和标签过滤帖子.我正在使用AND作者和类别的OR条款和标签的子句(可以输入多个标签)

查询看起来像这样

SELECT *
FROM (`posts`)
WHERE `author` = 'dan'
  AND `category` = 'technology'
  AND `tags` LIKE '%ebook%'
  OR `tags` LIKE '%ipad%'
  OR `tags` LIKE '%apple%'
Run Code Online (Sandbox Code Playgroud)

上面的查询返回包含搜索的任何标记的帖子,无论作者或类别如何.

我想ebook, ipad, apple仅在作者姓名dan和类别中返回包含标签的帖子technology.

怎么可能在mysql中这样做?

ing*_*ngo 5

在or或周围添加括号

SELECT 
    * 
FROM 
    (`posts`) 
WHERE 
    `author` = 'dan' AND 
    `category` = 'technology' AND 
     ( `tags` LIKE '%ebook%' OR `tags` LIKE '%ipad%' OR `tags` LIKE '%apple%' )
Run Code Online (Sandbox Code Playgroud)

  • PS在美国,这些几乎总是被称为"括号",而"括号"通常是指"["和"]",但通常称为"方括号". (2认同)