如何在同一MySQL表上查询All,Any和None条件?

时间:2015-06-23 15:41:46

标签: mysql

我有一个表,它是内容ID和类别ID的索引。内容和类别之间存在1:多关系,因此每个内容ID都有多行。

我需要根据以下条件搜索内容: - 内容包含类别ID列表-1中的所有类别 - 内容在类别ID的列表-2中包含任何类别ID - 内容包含类别ID列表3中的NONE类别

我不确定是否应该为ALL条件使用连接,对于ANY和NONE条件使用LEFT JOINS,拒绝任何NONE术语值不为空的行,或者是否有更好的方法来执行此操作。

1 个答案:

答案 0 :(得分:0)

我知道你应该在这种情况下使用UNION,如

select * from content_table
where content in (list-1 of category IDs)

UNION

select * from content_table
where content in (list-2 of category IDs)

UNION

select * from content_table
where content not in (list-3 of category IDs);