mysql json字段中数值的加减
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql json字段中数值的加减相关的知识,希望对你有一定的参考价值。
表 table1 中有 字段 f ,值为 "a":"count":1,"b":"count":3 现在假设需要 将 a.count的值加3,结果为"a":"count":4,"b":"count":3,请问sql怎么写?
如果是mysql5.7版本以下的,这个字段的值在mysql里面就是个字符串,纯粹的sql语句是不行的,只能把这个字段的值拿出来格式化变成json对象,然后更改值,再放进去;
如果是mysql5.7的话,可以通过新增的json_set函数,来修改json字段的值,希望对你有帮助
参考技术A你要的代码如下:
update table1 set f = json_set(f, "$.a.count", (json_extract(f, "$.a.count") + 3))where id = 1
具体的操作流程,截图:
本回答被提问者采纳 参考技术B如果是mysql5.7版本以下的,这个字段的值在mysql里面就是个字符串,纯粹的sql语句是不行的,只能把这个字段的值拿出来格式化变成json对象,然后更改值,再放进去;
如果是mysql5.7的话,可以通过新增的json_set函数,来修改json字段的值,希望对你有帮助
追问mysql是5.7+,麻烦写出sql语句,需要实现类似普通字段中update table set count=count+3 where id='a' 的效果。
mysql 中日期的加减
我用jsp写程序的时候需要让用户在文本框中输入一个日期(假设是2008-03-11),但是我在执行算起来语句时,想让日期加一天,"SELECT count(*)from table where time >='2008-03-12',应该怎么办?
可以通过SELECT DATEADD(day, 相差天数, 日期) AS 别名 的格式来计算上周SELECT DATEADD(day, -7, 日期) AS 别名上月SELECT DATEADD(month, -1, 日期) AS 别名上年SELECT DATEADD(year, -1, 日期) AS 别名 参考技术A 不太清楚masql中时间是什么格式的;可以试试在代码中把 '2008-03-11' 变成 '2008-03-11 23:59:59.999' 传入sql
SELECT count(*)from table where time > '2008-03-11 23:59:59.999' 参考技术B SELECT count(*)from table where time >='2008-03-11'+INTERVAL 1 day
以上是关于mysql json字段中数值的加减的主要内容,如果未能解决你的问题,请参考以下文章
3.1.4MySQL__数据库分组,拼接查询,日期函数,日期加减,间隔,数值四舍五入,排序,分组,having筛选,分组TopN,流程控制函数,