我有一个表,其中一个字段使用SET数据类型,并检查该字段是否包含我使用的特定元素

SELECT * FROM table WHERE myset LIKE %value%;

这在大多数情况下都有效,但是其中两个潜在值具有相同的词,即集合中的一个可能元素是Poodle,另一个是Toy Poodle。如果我做
SELECT * FROM table WHERE myset LIKE %Poodle%;

它返回所有带有 Poodle 或玩具 Poodle 的行。我希望它仅在字段包含Poodle时返回。如果删除通配符,则它将仅返回只有Poodle的行。所以基本上,如果表是:
id | myset
-------------------------
1  | "Poodle"
2  | "Toy Poodle"
3  | "Poodle","Toy Poodle"
4  | "Toy Poodle","Poodle"

我需要一个选择语句,该语句将返回1,3和4,但不返回2。这可能吗?

最佳答案

使用FIND_IN_SET方法怎么样?

关于mysql WHERE SET数据类型包含项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5346274/

10-10 19:33