2009-12-16 111 views

回答

3

LIKE '%,2,%'匹配在中间,LIKE '2,%'LIKE '%,2'匹配的开始,以匹配端和精确匹配,你可以使用= '2'

UPDATE:若要所有的情况下,你可以使用OR,X LIKE '%,2,%' OR X LIKE '2,%' OR X LIKE '%,2' OR X='2'

+0

我需要一种可以在所有情况下都能正常工作的解决方案。 – user198729 2009-12-16 07:49:17

+0

更新!你可以使用OR – YOU 2009-12-16 07:55:48

1
SELECT '1,2,7,9,13,3,10,4,21,6,12' REGEXP '(^2$)|(^2,)|(,2,)|(,2$)' AS matches 

它可以很好地调整,但它应该工作。

附:请不要用主题来写整个问题

+0

不确定关于MySQL,但'\ b2 \ b'在这里可以很好地工作。另外,请不要对问题使用**回答** *评论*,除非它是相关的。 – Kobi 2009-12-16 09:09:48

8

为了进行测试,如果字符串中存在的价值,你可以使用

mysql> SELECT FIND_IN_SET(15, '1,2,15,4,5,6'); 
+---------------------------------+ 
| FIND_IN_SET(15, '1,2,15,4,5,6') | 
+---------------------------------+ 
|        3 | 
+---------------------------------+ 
1 row in set (0.00 sec) 

,并测试其是否不匹配大于0(0返回被找到)。

2

你有什么问题真的试图解决,在这里,虽然?这闻起来很糟糕的设计。

(我没有看到任何评论箱,可能是由于缺乏代表的---因此张贴一个答案。)