我不熟悉MySQL中的正则表达式。
答案 0 :(得分: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)。
答案 1 :(得分:3)
LIKE '%,2,%'
,要在开始时匹配LIKE '2,%'
,要在结束时与LIKE '%,2'
匹配并完全匹配,您可以使用= '2'
更新:要处理所有情况,您可以使用OR,X LIKE '%,2,%' OR X LIKE '2,%' OR X LIKE '%,2' OR X='2'
答案 2 :(得分:2)
你在真正尝试解决的问题是什么?这闻起来很糟糕。
(我没有看到任何评论框,可能是由于缺乏代表 - 因此张贴了答案。)
答案 3 :(得分:1)
SELECT '1,2,7,9,13,3,10,4,21,6,12' REGEXP '(^2$)|(^2,)|(,2,)|(,2$)' AS matches
它可能会被微调,但它应该可以工作。
P.S。请不要使用主题撰写整个问题