mysql如何截取一段字符串?

mysql如何截取一段字符串?

问题描述:

要截取的数字不一定都是5位数,如图两个/"需要的数据"/里的内容,用SUBSTRING截取不行!

img

img

-- 带双引号 “123”    select json_extract(字段名,'$.id')
select json_extract('{\"aa\":\"self\",\"id\":\"123\"}','$.id') id; 
-- 不带双引号 123    select SUBSTRING(字段名,'$.id'),2,LENGTH(字段名,'$.id'))-2)
select SUBSTRING(json_extract('{\"aa\":\"self\",\"id\":\"123\"}','$.id'),2,LENGTH(json_extract('{\"aa\":\"self\",\"id\":\"123\"}','$.id'))-2) id;

这是json字符串呀,通过后端生成发给前端,或者前端发出后端接收,后端或者前端将其转成json对象进行使用,获取红框里的value通过key即可就是你上面的id,而不是靠分割字符串,将对应的数据处理好后再传到数据库对应的表中

这种可以用**json_extract(字段名,'$.id')**获取json字符串的值,或者取出来转成JSON对象再获取

用正则表达式。substring肯定可以。先indexof \”id":"再加上其长度就是数字的开始位,再在id后面indexof "就能找到数字的尾了