整数数组的基本mysql regexp

时间:2014-01-29 04:43:33

标签: mysql

我有一个包含整数数组的varchar字段。

例如:

Row1: [2]
Row2: [1,8,346]
Row3: [10,54,245]
Row4: [4,25,3,7,46,14]

我需要能够获得具有所选id实例的所有行。 有点像我可以使用IN函数的反向...

SELECT * FROM table WHERE field IN (4)

虽然反转IN功能的输入/输出......

试图澄清: 使用上面的数字设置为行。 我需要能够在varchar数组中获得ID为1的所有行。 我的尝试看起来像:

SELECT * FROM table WHERE field REGEXP '(1)';

当我执行ID 1的查询时,结果集应该只有第2行,而不是第3行(在集合中有10)

建议? TIA

1 个答案:

答案 0 :(得分:1)

我认为你可以尝试像

这样的东西
SELECT * FROM table WHERE field REGEXP '[[:<:]]1[[:>:]]';

[[:<:]][[:>:]]匹配字边界,意味着它与'21'中的1或'10'中的1不匹配,但它匹配整个单词1。

从MySQL文档中查看this page的最底部,他们会解释[[:<:]][[:>:]]