2

这个比mysql中的简单范围有点复杂,我的字段数据是{"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)"}'
4

1 回答 1

5

我的下意识反应是说“停止在单个列中存储多个值”,但是如果您必须这样做并且您有正则表达式功能,请使用它(未经测试):

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

请记住,无法使用索引来优化此查询,因此您只能检查my_table.

于 2012-07-12T18:10:48.030 回答