SQL怎么筛选出字符串中指定规则的字符

如题现有一列id数万条如“asdsaj"name":"董立冬","change":"dsadsa",pass:dasd,"name":"东方(...)"”,我只想要nam... 如题 现有一列id 数万条 如 “asdsaj "name":"董立冬","change":"dsadsa",pass:dasd,"name":"东方(...)"”,我只想要name后面双引号的值,而且我要所有的name,想到了个方法太麻烦 求大佬科普方法 展开
 我来答
l7722526
2019-10-11 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3745万
展开全部
可用substring函数来查询。

比如表中有如下数据:

现在要查询第二位字符为“s”的数据,可用如下语句:

select * from test where substring(STR,2,1)='s'
结果截图:

substring函数说明:

substring函数需要三个参数,其中第一个参数是要截取的字符串,第二个参数是要查询字符串的起始位,第三个参数为截取的字符长度。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-10-12
展开全部
select
(
substring
(
'asdsaj "name1":"董立冬","change":"dsadsa",pass:dasd,"name2":"东方(...)"',
CHARINDEX('name1":"','asdsaj "name1":"董立冬","change":"dsadsa",pass:dasd,"name2":"东方(...)"')+8,
CHARINDEX('","change":"','asdsaj "name1":"董立冬","change":"dsadsa",pass:dasd,"name2":"东方(...)"')-(CHARINDEX('name1":"','asdsaj "name1":"董立冬","change":"dsadsa",pass:dasd,"name2":"东方(...)"')+8)
)
)as'name1',``````
如果“name”相同,都叫做“name”的话,定义一个变量,每取得一个name值后将字段值截掉已取的name那段,保留后面的进行第二次取name值。
实在嫌效率低或者麻烦的话写个正则提取函数应该也可以处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jinli1771
2019-10-12 · TA获得超过375个赞
知道小有建树答主
回答量:612
采纳率:58%
帮助的人:124万
展开全部
substr()加instr()可以满足。如果是标准的json,可以用json格式转换输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pieryon
2019-10-12 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14411 获赞数:166867
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
你这个应该是以json格式保存的,查出来以后用json数组解析,比较容易,数据库层面处理太复杂。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lalasong
2019-10-12
知道答主
回答量:5
采纳率:0%
帮助的人:3353
展开全部
必须用SQL么,我有更简单的方法进行筛选
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式