问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql如何截取一个json字符串

发布网友 发布时间:2022-04-22 15:55

我来回答

2个回答

热心网友 时间:2022-04-07 19:27

代码如下:
CREATE PROCEDURE sp_str
(
IN p_str VARCHAR(50), /*原始字符串*/
IN p_begin_str VARCHAR(50), /*要匹配的起始字符串*/
IN p_end_str VARCHAR(50)) /*要匹配的结束字符串*/
OUT p_result VARCHAR(50)) /*返回结果*/
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE m_len INT DEFAULT 0;
DECLARE m_index INT DEFAULT 0;
/*计算第一个匹配字符串的索引位置*/
select locate(p_begin_str,p_str)+char_length(p_begin_str) into m_index;
/*计算第一个匹配字符串的长度*/
select locate(p_end_str,p_str,m_index) into m_len;
select SUBSTRING(p_str,m_index,m_len-m_index) INTO p_result ;
END;

执行:
CALL sp_str('[]abcd[12345]aa[]ss','abcd[',']',@result);
返回值 @result 为12345
call sp_str('[]abcd[sdww]aa[]ss','abcd[',']',@result);
返回值 @result 为sdww
如果不用存储过程,可以直接写sql语句实现:

代码如下:
select SUBSTRING(
']abcd[12345]111[]',
locate('abcd[',']abcd[12345]111[]')+CHAR_LENGTH('abcd['),
locate(']',']abcd[12345]111[]',CHAR_LENGTH('abcd['))-
(select locate('abcd[',']abcd[12345]111[]')+CHAR_LENGTH('abcd['))
)

返回值为 12345
关于mysql的函数介绍:
CHAR_LENGTH(str)
返回字符串str的长度。
LOCATE(substr,str)
POSITION(substr IN str)
返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0.
mysql> select LOCATE('bar', 'foobarbar');
-> 4
mysql> select LOCATE('xbar', 'foobar');
-> 0
该函数是多字节可靠的。 LOCATE(substr,str,pos)
返回子串substr在字符串str第一个出现的位置,从位置pos开始。如果substr不是在str里面,返回0。
mysql> select LOCATE('bar', 'foobarbar',5);
-> 7
这函数是多字节可靠的。
SUBSTRING(str,pos,len)
SUBSTRING(str FROM pos FOR len)
MID(str,pos,len)
从字符串str返回一个len个字符的子串,从位置pos开始。使用FROM的变种形式是ANSI SQL92语法。
mysql> select SUBSTRING('Quadratically',5,6);
-> 'ratica'
该函数是多字节可靠的。
SUBSTRING(str,pos)

热心网友 时间:2022-04-07 20:45

只能用正则表达式来处理
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? QQ邮箱怎么样升级? 韩国的蜂蜜薯片太好吃了,想带几包回来给家里人尝尝请问这种充气的薯片能不能带上飞机啊?会不会爆炸? mysql json字段中数值的加减 飞机上让不让带薯片啊?? 怎样充分利用qq邮箱巨大的存储空间? mysql json 数字可以吗 飞机安检可不可以带面包薯片,鸡腿,泡椒凤爪之类? json怎么从mysql数据库中的数据 去美国搭飞机可以带零食上机吗?例如饼干 mysql json 什么时候开始支持 飞机上能带桶装薯片、疤痕霜吗 急,在线等 qq邮箱储存空间不足,邮件无法打开,咋办? mysql什么类型存储json数据 坐国际航班飞机,能带吃的嘛比如薯片之类的吗 MySQL的json类型在哪些场景下会用到 做飞机带零食吗?比如牛肉干和薯片行吗? 飞机上能带糖果薯片这些零食吗? mysql数据库可以通过json存储吗 飞机上可以带哪些食品? qq邮箱的空间怎么增大啊? 零食可以带上飞机吗? 关于MYSQL查询生成json的一个问题,在线等! 坐飞机可以带桶装的薯片吗?有多少限制吗? 404 Not Found 薯片可以带上飞机吗 mysql5.7 不能添加JSON类型字段? 飞机上包装的薯片能带吗?还有化妆品 mysql 存json串的过程会丢失部分为什么 吃的东西可以带上飞机么? mysql存储过程处理json格式内容 薯片带上飞机会炸掉么 这是阻生智齿吗? 鎴戜笐鍟怎么读? 这种是属于阻生智齿吗? 这种是属于阻生智齿吗? 阻生齿和智齿一样吗 阻生齿和智齿是不是一样 阻生齿和智齿一样吗 阻生齿和智齿是不是一样 阻生智齿是什么意思 阻生智齿是什么意思 四颗智齿只有一个是阻生齿,可不可以只拔这一个