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
猜你喜欢
- 1、表示乘号2、表示倍数,例如:def T(msg,time=1): print((msg+' ')*time)
- 报错信息:Job for mysqld.service failed because the control process exited
- 本期给大家讲解的函数都不陌生,大家都遇到使用过,但是不要轻易觉得简单去学习,因为往往看似简单的东西,从一个方面深入下收都是一大堆的东西,千万
- 飞机大战(Python)代码分为两个python文件,工具类和主类,需要安装pygame模块,能完美运行(网上好多不完整的,调试得心累。实现
- Matplotlib实现单画布绘制多个子图最近研究Python数据分析,需要利用Matplotlib绘制图表,并将多个图表绘制在一张图中,经
- 前言: 这篇文章主要介绍RMAN的常用方法,其中包含了作者一些自己的经验,里面的实验也基本全在WIN 2K和ORACLE 8.1.6环境下测
- 列表的结构在 cpython 实现的 python 虚拟机当中,下面就是 cpython 内部列表实现的源代码:typedef struct
- 一、前言相关知识来自《python算法设计与分析》。初级排序算法是指几种较为基础且容易理解的排序算法。初级排序算法包括插入排序、选择排序和冒
- 本文借用HTML的css语法,将样式表应用到窗口部件。这里只是个简单的例子,实际上样式表的语法很丰富。以下类似于css: StyleShee
- 最近刚接触了公司的服务器,使用的是Windows 2003 server + IIS 6.0 服务器,在使用无组件上传文件时产生这个错误时:
- 假设你想设计一个模块集(也就是一个“包”)来统一处理声音文件和声音数据。通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所
- 关于asp随机数的相关文章:asp生成一个不重复的随机数字 8个asp生成随机字符的函数 <html> <me
- 1、运动速率上节中,实现了一辆汽车在马路上由下到上行驶,并使用了pygame.time.delay(200)来进行时间延迟。看了很多参考材料
- 因为最近要经常转换数据集进行实验,因此记录一下。1、视频转图片即为将视频解析为一帧一帧的图片:import cv2vc=cv2.VideoC
- 开发工具Python版本:3.6.4相关模块:cv2模块;以及一些Python自带的模块。环境搭建安装Python并添加到环境变量,pip安
- 本文实例讲述了Python实现监控键盘鼠标操作。分享给大家供大家参考,具体如下:# -*- coding: utf-8 -*-import
- 这个问题是py2和py3兼容性的问题在py2中,判断key是否属于dict的写法可以是:d={'name':'abc
- 由于客户提供的是excel文件,在使用时期望使用csv文件格式,且对某些字段内容需要做一些处理,如从某个字段中固定的几位抽取出来,独立作为一
- 一、登录以信号与系统课程为例,直接输入网址则出现登录界面:由于学号登录需要验证码,因此选择电话登录:直接在开发者工具中找到手机号输入框、密码
- 1.进入官网https://www.python.org/,点击Downloads下的Windows按钮,进入下载页面。2.如下图所示,点击