2011-03-27 62 views
1

我在表中有一个字段,数据类型为“set”,以便它可以接受多个值。但是当我检索匹配值的结果时,我陷入了困境。在SET字段中检索具有匹配值的表行类型

为例字段

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

的示例性查询

SELECT * FROM mytable where menuPosition='top' 

此查询仅返回只top因为它们的值的那些行,不返回具有像top,left多个值的行。如何检索所有这些记录?

而且,由于我上面的查询只比较一个值,如何编写一个查询匹配诸如where menuPosition='top' && 'bottom'

回答

1

多个值,caeither使用FIND_IN_SET,如:

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

或者你可以使用LIKE

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

我想第一个更快。

+0

如何比较一个和多个值如“顶部”和“底部” – mrN 2011-03-27 09:42:32

+0

我刚刚添加了最后一行。使用'FIND_IN_SET('top',menuPosition)AND FIND_IN_SET('bottom',menuPosition)' – vbence 2011-03-27 09:43:46

+0

噢...........太棒了....谢谢 – mrN 2011-03-27 09:44:40

相关问题