在SET字段类型中检索具有匹配值的表行

时间:2011-03-27 09:35:59

标签: mysql

我在表中有一个字段,数据类型为“set”,因此它可以接受多个值。但是当我检索匹配值的结果时,我当时卡住了。

示例字段

"menuPosition" : set('top','left','right','bottom')

示例查询

SELECT * FROM mytable where menuPosition='top'

此查询仅返回仅top作为其值的行,不返回具有多个值top,left的行。如何检索所有这些记录?

由于我的上述查询仅比较了一个值,因此如何编写查询以匹配多个值,例如where menuPosition='top' && 'bottom'

1 个答案:

答案 0 :(得分:1)

您可以使用FIND_IN_SET之类的:

SELECT * FROM mytable WHERE FIND_IN_SET('top', menuPosition)

或者您可以使用LIKE

SELECT * FROM mytable WHERE menuPosition LIKE '%top%'

我猜第一个更快。