目录1.substring_index函数的语法及其用法(1)语法:substring_index(string,sep,num)(2)用于截取目标字符串。2.实例(1)从某字段截取目标字符串。(2)与cast函数结合使
即substring_index(字符串,分隔符,序号)
参数说明
string:用于截取目标字符串的字符串。可为字段,表达式等。
sep:分隔符,string存在且用于分割的字符,比如“,”、“.”等。
num:序号,为非0整数。若为整数则表示从左到右数,若为负数则从右到左数。比如“www.Mysql.com”截取字符‘www’,分割符为“.”,从左到右序号为1,即substring_index("www.mysql.com",'.',1);若从右开始获取“com”则为序号为-1即substring_index("www.mysql.com",'.',-1)
例:现有一个学生信息表student,详细地址address储存省、市、县等由逗号隔开的地址信息,比如“XX省,XX市,XX区,...,XXX号”。由于某种原因没有学生所在省信息需要获取,同时获取学生姓名name,性别sex,年龄age。
select name,sex,age,
substring_index(address,',',1) as province
from student
例:现有一张订单信息data,由于2022-03-04日期 之后存储日期信息的格式出错,日期前加了一些前缀,并用空格隔开,比如“13D 2022-02-01”,需要获取该表2022-03-04之后具体日期信息,同时获取单子offer_id,以及产品名name。
select cast(substring_index(ctime,' ',1) as date) as dt,
offer_id,name
FROM data
WHERE substring_index(ctime,' ',1)>= '2022-03-04'
比如一个用户可以维护多条学历信息记录,现在这个人维护了一所本科院校,俩所研究生院校,一所博士院校,现需要展示最高的一个学校,或者需要展示出所有的研究生院校。
IF(
SUBSTRING_INDEX(
GROUP_CONCAT(
CASE
WHEN a02.R0205 = '11' //表示研究生
THEN a02.R0203
ELSE ','
END
ORDER BY a02.R0205, a02.R0206
),
',',
2
) = ',' // 如果没有
,'', // 返回空,否则,返回下面语句
SUBSTRING_INDEX(
GROUP_CONCAT(
CASE
WHEN a02.R0205 = '21'
THEN a02.R0203
END
ORDER BY a02.R0205, a02.R0206
),
',',
2)
) AS dxbyyx,
结果:
中国人民大学,清华大学
SQL的cast函数用法可参考SQL的CAST()——转换数据类型
到此这篇关于SQL的substring_index()用法的文章就介绍到这了,更多相关SQL substring_index()用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
--结束END--
本文标题: SQL的substring_index()用法实例(MySQL字符串截取)
本文链接: https://lsjlt.com/news/177603.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0