MySQL:如何只选择'set'列中包含所有值/无值的行

时间:2016-01-27 10:22:50

标签: mysql

我的MySQL表中有一个名为category_list的SET数据类型列,可以包含以下一个或多个值:Category 1Category 2

第一个问题:

要返回已选择两个类别的行,我使用:

"WHERE FIND_IN_SET('Category 1', category_list) > 0 AND FIND_IN_SET('Category 2', category_list) > 0"

这很好用。但是当我有很多类别时,这个陈述变得很大。是否有更简单/更好的方法来选择已选择所有类别的行?

第二个问题:

要返回已选择NONE类别的行,我使用此查询:

"WHERE FIND_IN_SET('XYZ', category_list) = 0"

我确保XYZ不是SET中的可能值。

这也可以,但是如果我稍后将值XYZ添加到SET,那么所有这些查询显然都会中断。

是否有更简单/更好的方法来只选择set列没有值的行?

0 个答案:

没有答案