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

发布网友 发布时间:2022-04-24 12:27

我来回答

5个回答

热心网友 时间:2022-04-08 11:03

可用substring函数来查询。

比如表中有如下数据:

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

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

substring函数说明:

substring函数需要三个参数,其中第一个参数是要截取的字符串,第二个参数是要查询字符串的起始位,第三个参数为截取的字符长度。

热心网友 时间:2022-04-08 12:21

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值。
实在嫌效率低或者麻烦的话写个正则提取函数应该也可以处理。

热心网友 时间:2022-04-08 13:56

substr()加instr()可以满足。如果是标准的json,可以用json格式转换输出

热心网友 时间:2022-04-08 15:47

你这个应该是以json格式保存的,查出来以后用json数组解析,比较容易,数据库层面处理太复杂。。。

热心网友 时间:2022-04-08 17:55

必须用SQL么,我有更简单的方法进行筛选

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com