Mysql过滤json数据值范围

Ben*_*enn 2 mysql json range

这个比mysql中的范围有点复杂,我的字段数据是{"id":"15","value":"1200"} ,我可以找到它,

SELECT * 
FROM  `my_table` 
WHERE  `my_field` 
REGEXP  '{"id":"15","value":"1200"}'
Run Code Online (Sandbox Code Playgroud)

但我需要的是价值的范围

所以我需要寻找1000> 2000之间的范围和json值1200匹配的字段.我不能用php重做输出,因为它会占用资源,所以如果有可能在Mysql中没有我处理数据通过php返回

任何帮助表示赞赏!

解决任何人!

LC给了我们很好的解决方案

REGEXP '{"id":"15","value":"(1[0-9][0-9][0-9]|2000)"}'
Run Code Online (Sandbox Code Playgroud)

lc.*_*lc. 5

我的下意识反应是说"停止在一列中存储多个值",但是如果你必须这样做并且你有正则表达式的力量,那就使用它(未经测试):

SELECT * 
FROM `my_table` 
WHERE `my_field` REGEXP '{"id":"15","value":"(1[0-9][0-9][0-9]|2000)"}'
Run Code Online (Sandbox Code Playgroud)

请记住,没有办法使用索引来优化此查询,因此您无法检查每一行my_table.