当前位置:首页 > 数据库 > 正文内容

SQL文本提取、截取的方法

2024-11-29数据库2

描述

题目:对于申请参与比赛的用户,blog_url字段中url字符后的字符串为用户个人博客的用户名,现在运营想要把用户的个人博客用户字段提取出单独记录为一个新的字段,请取出所需数据。

示例:user_submit

device_idprofileblog_url
2138180cm,75kg,27,malehttp:/ur/bisdgboy777
3214165cm,45kg,26,femalehttp:/url/dkittycc
6543178cm,65kg,25,malehttp:/ur/tigaer
4321171 cm,55kg,23,femalehttp:/url/uhksd
2131168cm,45kg,22,femalehttp:/url/sydney

根据示例,你的查询应返回以下结果:

device_iduser_name
2138bisdgboy777
3214dkittycc
6543tigaer
4321uhsksd
2131

sydney

四种解决方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
select
-- 替换法 replace(string, '被替换部分','替换后的结果')
-- device_id, replace(blog_url,'http:/url/','') as user_name
 
-- 截取法 substr(string, start_point, length*可选参数*)
-- device_id, substr(blog_url,11,length(blog_url)-10) as user_nam
 
-- 删除法 trim('被删除字段' from 列名)
-- device_id, trim('http:/url/' from blog_url) as user_name
 
-- 字段切割法 substring_index(string, '切割标志', 位置数(负号:从后面开始))
device_id, substring_index(blog_url,'/',-1) as user_name
 
from user_submit;