SQL的substring_index()用法实例(MySQL字符串截取)

作者:小白修炼晋级中 时间:2024-01-27 19:30:19 

1.substring_index函数的语法及其用法

(1)语法:substring_index(string,sep,num)

即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)

(2)用于截取目标字符串。

2.实例

(1)从某字段截取目标字符串。

例:现有一个学生信息表student,详细地址address储存省、市、县等由逗号隔开的地址信息,比如“XX省,XX市,XX区,...,XXX号”。由于某种原因没有学生所在省信息需要获取,同时获取学生姓名name,性别sex,年龄age。

select name,sex,age,
substring_index(address,',',1) as province
from student

(2)与cast函数结合使用截取某字符串并转为目标格式。

例:现有一张订单信息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'

附:结合group_concat(),把多条记录回显到一条,再做分割

比如一个用户可以维护多条学历信息记录,现在这个人维护了一所本科院校,俩所研究生院校,一所博士院校,现需要展示最高的一个学校,或者需要展示出所有的研究生院校。

/*研究生毕业院校*/
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()——转换数据类型

来源:https://blog.csdn.net/weixin_50853979/article/details/124669207

标签:sql,substring,index(),字符串截取
0
投稿

猜你喜欢

  • Mysql全局ID生成方法

    2023-07-02 13:59:53
  • 在查询分析器理启动或停止SQL Agent服务

    2009-01-08 16:20:00
  • Python操作redis和mongoDB的方法

    2023-01-01 17:06:34
  • MySQL的索引原理以及查询优化详解

    2024-01-13 14:04:38
  • 通过5个例子让你学会Pandas中的字符串过滤

    2022-10-09 03:44:36
  • ASP编程入门进阶(十):Global.asa文件

    2008-07-12 07:05:00
  • python 中文编码乱码问题的解决

    2021-03-06 16:43:58
  • pandas进行数据的交集与并集方式的数据合并方法

    2022-05-16 08:48:08
  • IE8网页显示不正常 用”兼容性视图”搞定

    2009-03-28 11:13:00
  • Python检测和防御DOS攻击的最简单方法

    2022-04-12 17:23:19
  • 学习ASP.NET八天入门:第四天

    2007-08-07 13:40:00
  • Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法

    2024-04-30 09:58:23
  • python 决策树算法的实现

    2022-10-15 05:49:56
  • 简单的python后台管理程序

    2022-01-07 03:49:30
  • MySQL数据库优化经验详谈(服务器普通配置)第1/3页

    2024-01-27 23:30:51
  • 30秒学会30个超实用Python代码片段【收藏版】

    2021-08-04 17:13:32
  • 无刷新dropdownlist并进行关联(js+xml)

    2007-09-23 12:13:00
  • SQL学习笔记四 聚合函数、排序方法

    2024-01-20 02:54:43
  • python使用tkinter实现透明窗体

    2022-09-10 00:58:40
  • String.indexOf 方法介绍

    2013-06-01 20:22:27
  • asp之家 网络编程 m.aspxhome.com