这个比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)
我的下意识反应是说"停止在一列中存储多个值",但是如果你必须这样做并且你有正则表达式的力量,那就使用它(未经测试):
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.
| 归档时间: |
|
| 查看次数: |
1301 次 |
| 最近记录: |