如何在MySQL中匹配“1,2,7,9,13,3,10,4,21,6,12”中的2个?

时间:2009-12-16 07:43:07

标签: mysql regex

我不熟悉MySQL中的正则表达式。

4 个答案:

答案 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。请不要使用主题撰写整个问题