2011-03-27 18 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

相關問題