使用regexp(json string)使用特定值从mysql获取行

时间:2017-01-04 15:31:26

标签: mysql arrays json regex

我正在使用Array JSON String将权限存储到DB中,我希望通过权限特定权限选择它们。在这个时候我正在选择它们:

  1 | Dog   | [3,4]
  2 | Cat   | [33,4]
  3 | Tiger | [5,33,4]
  4 | wolf  | [3,5]


 SELECT * FROM `pages` WHERE access REGEXP '([^"])3([^"])'

它可以工作但不应该工作。这个查询给了我所有包含3的记录,但是它给出了包含33的记录。我的问题是我必须如何格式化我的正则表达式以按特定值将行输入json字符串。

p.s我有mysql 5.5所以我知道这个版本不支持json函数

2 个答案:

答案 0 :(得分:1)

如果您在字段中只有数字,则可以将正则表达式更改为仅采用您要查找的字符串(此处为' 3')不会立即接近其他数字的值:

SELECT * FROM `pages` WHERE access REGEXP '([^"0-9])3([^"0-9])'    

答案 1 :(得分:0)

j

也就是说,使用“单词边界”的东西。