我正在使用数组 JSON 字符串将权限存储到数据库中,并且我想通过特定于权限的权限来选择它们。此时我像这样选择它们:
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 函数
最佳答案
如果字段中只有数字,则可以更改正则表达式,使其仅采用您要查找的字符串(此处为“3”)没有紧邻的其他数字的值:
SELECT * FROM `pages` WHERE access REGEXP '([^"0-9])3([^"0-9])'
关于mysql - 使用正则表达式(json字符串)使用特定值从mysql获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41467497/