我有一个包含整数数组的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
答案 0 :(得分:1)
我认为你可以尝试像
这样的东西SELECT * FROM table WHERE field REGEXP '[[:<:]]1[[:>:]]';
[[:<:]]
和[[:>:]]
匹配字边界,意味着它与'21'中的1或'10'中的1不匹配,但它将匹配整个单词1。
从MySQL文档中查看this page的最底部,他们会解释[[:<:]]
和[[:>:]]
。