Liz*_*ard 6 mysql boolean-logic boolean
让我们说我有一个与主题有很多关系的文章表.分配给每个文章主题具有type
其可以含有1〜3中的值字段AND
,NOT
和OR
.
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)
如何创建此查询?
提前致谢!
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 插入。