Mysql过滤json数据值范围

时间:2012-07-12 18:04:21

标签: mysql json range

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

找到它
SELECT * 
FROM  `my_table` 
WHERE  `my_field` 
REGEXP  '{"id":"15","value":"1200"}'

但我需要的是值的范围

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

任何帮助表示赞赏!

解决任何人的问题!

LC 给了我们非常好的解决方案

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

1 个答案:

答案 0 :(得分:5)

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

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

请记住,无法使用索引优化此查询,因此您无法检查my_table中的每一行。