使用AND,OR和NOT进行mysql查询

Liz*_*ard 6 mysql boolean-logic boolean

让我们说我有一个与主题有很多关系的文章表.分配给每个文章主题具有type其可以含有1〜3中的值字段AND,NOTOR.

Articles
   id
   ....

Topics
   id
   ....

ArticleTopics
   article_id
   topic_id
   type
Run Code Online (Sandbox Code Playgroud)

我想创建一个查询,说明返回所有文章:

ALL of the following topics: 1, 2, 3 (AND association)
   AND
ANY of the following topics: 4, 5, 6 (OR association)
   AND
NONE of the following topics 7, 8 (NOT association)
Run Code Online (Sandbox Code Playgroud)

如何创建此查询?

提前致谢!

Kaj*_*Abt 1

ALL 和 NOT 部分非常简单,只需用 AND 将它们链接起来即可:

从 Y 中选择 X,其中 a AND b AND c AND NOT d AND e AND NOT e。

OR 位于:

SELECT X FROM Y WHERE ((a AND b AND c) AND (d OR e OR f)) AND NOT g AND NOT h

用比较代替小数字,你就完成了。因此,如果您想在代码中执行此操作,请对条件进行排序,然后将它们作为字符串链接在一起。小心避免 SQL 插入。

  • 字段是在关系之上的,所以事情不是这么简单。 (3认同)