"); //-->
在工作中,可能需要将某些字段按某个分割符组成一个字符串作为字段值存取到数据库表中,比如某个任务对应三个结果,分别存储在不同的数据表中,这时可以将这三个不同表的主键按照约定的顺序进行组合(主键a:主键b:主键c)。当需要分别去查任务对应类别的详情信息时,可以截取特定位置的字符串(主键b)join表b进行操作。正好最近也遇到这块操作,特意将MySQL字符串截取的相关函数做一个梳理,以便今后回顾。

一、left(str,len)
返回字符串str自左数的len个字符。如果任一参数为NULL,则返回NULL。
mysql>selectleft('codingke.com',5);
+---------------------------------------------------------+
|left('codingke.com',5)|
+---------------------------------------------------------+
|codin|
+---------------------------------------------------------+
rowinset(0.00sec)
二、right(str,len)
返回str右边末len位的字符。如果有的参数是NULL值,则返回NULL。
mysql>selectright('codingke.com',4);
+---------------------------------------------------------+
|right('codingke.com',4)|
+---------------------------------------------------------+
|.com|
+---------------------------------------------------------+
rowinset(0.00sec)
三、substring_index(str,delim,count)
返回str中第count次出现的分隔符delim之前的子字符串。如果count为正数,将最后一个分隔符左边(因为是从左数分隔符)的所有内容作为子字符串返回;如果count为负值,返回最后一个分隔符右边(因为是从右数分隔符)的所有内容作为子字符串返回。在寻找分隔符时,函数对大小写是敏感的。如果在字符串str中找不到delim参数指定的值,就返回整个字符串。
mysql>selectsubstring_index('www.codingke.com','.',2);
+---------------------------------------------------------+
|substring_index('www.codingke.com','.',2)|
+---------------------------------------------------------+
|www.codingke|
+---------------------------------------------------------+
1rowinset(0.00sec)
mysql>selectsubstring_index('www.codingke.com','/',2);
+---------------------------------------------------------+
|substring_index('www.codingke.com','/',2)|
+---------------------------------------------------------+
|www.codingke.com|
+---------------------------------------------------------+
rowinset(0.00sec)
四、substring()与substr()
substring(str,pos)、substring(strfrompos)、substring(str,pos,len)、substring(strfromposforlen)比较
在以上4种函数变种形式中,没有len参数的函数形式会返回自str中位置pos处之后的子字符串;有len参数的函数形式会返回自str中位置pos处之后,长度为len的子字符串。使用FROM的函数形式则是采用的标准的SQL语法。pos参数也可能取负值,在这种情况下,取字符串的方式是从字符串str的末尾向前(而非从前往后),从这种逆向顺序的pos处开始取字符串。另外,负值的pos参数可用于任何形式的substring()函数中。
mysql>selectsubstring('codingke.com',6);
+---------------------------------------------------------+
|substring('codingke.com',6)|
+---------------------------------------------------------+
|ngke.com|
+---------------------------------------------------------+
rowinset(0.00sec)
mysql>selectsubstr('codingke.com'from6);
+---------------------------------------------------------+
|substr('codingke.com'from6)|
+---------------------------------------------------------+
|ngke.com|
+---------------------------------------------------------+
rowinset(0.00sec)
mysql>selectsubstring('codingke.com',-10,4);
+---------------------------------------------------------+
|substring('codingke.com',-10,4)|
+---------------------------------------------------------+
|hont|
+---------------------------------------------------------+
五、trim([{both|leading|trailing}[remstr]form]str)
将字符串str去除remstr所指定的前缀或后缀,返回结果字符串。如果没有指定标识符both、leading,或trailing,则默认采用both,即将前后缀都删除。remstr其实是个可选参数,如果没有指定它,则删除的是空格。
mysql>selecttrim('codingke.com');
+---------------------------------------------------------+
|trim('codingke.com')|
+---------------------------------------------------------+
|codingke.com|
+---------------------------------------------------------+
rowinset(0.00sec)
mysql>selecttrim(leading'www.'from'www.codingke.com');
+---------------------------------------------------------+
|trim(leading'www.'from'www.codingke.com')|
+---------------------------------------------------------+
|pythontab.com|
+---------------------------------------------------------+
rowinset(0.00sec)
mysql>selecttrim(both'www.'from'www.codingke.com');
+---------------------------------------------------------+
|trim(both'www.'from'www.codingke.com')|
+---------------------------------------------------------+
|codingke.com|
+---------------------------------------------------------+
rowinset(0.00sec)
mysql>selecttrim(trailing'www.'from'www.codingke.com');
+---------------------------------------------------------+
|trim(trailing'www.'from'www.codingke.com')|
+---------------------------------------------------------+
|www.codingke.com|
+---------------------------------------------------------+
rowinset(0.00sec)以上就是扣丁学堂MySQL字符串截取相关函数总结的详细介绍,希望能帮助不太了解PHP的小伙伴们。想要学习PHP的小伙伴小编给大家推荐值得信赖的扣丁学堂学习,扣丁学堂PHP培训不仅有专业的老师和与时俱进的课程体系,还有大量的PHP视频教程供学员观看学习,想要学好PHP的小伙伴快快行动吧。扣丁学堂PHP技术交流群:374332265。微信号:codingbb
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
关于ARM网络中断的问题
Altera: 采用全系列40-nm收发器FPGA和ASIC实现创新
谁会EZ-FX CY68013 ??
GREAT WALL GW-140/140H型VGA多频彩色显示器的电源电路图
基于高速串行BCD码除法的数字频率计的设计
数据采集技术第一讲:DAQ基础知识简介
MIT利用生成式AI进行机器人设计
基于计算机图像序列的人体步态参数的快速获取方法
基于混沌图像的防伪技术
ENVISION EC-1469型SVGA彩色显示器的电源电路图
决战希腊:微软“创新杯”2009实况-——软件设计和嵌入式开发项目组决赛3
ARM的jtag仿真器是必须的吗?
基本半导体完成1.5亿元D轮融资,加速碳化硅领域布局
ENVISION EC-1439型彩色显示器的电源电路图
范式级技术革命!合见工软年度发布多款国产自研EDA与IP解决方案
了解您的安全应用说明(第1部分):故障率
基于计算机视觉和模糊控制技术的自动对版系统
物理AI在机器人领域的兴起
决战希腊:微软“创新杯”2009实况-——软件设计和嵌入式开发项目组决赛4
机器人通常无法跑得过动物
到2032年可编程微控制器市场将达1024亿美元,年复合增长率10.29%
合见工软发布下一代全场景验证硬件系统UVHS-2
关于Rhapsody6.0 + Tornado2.0?
了解GaN驱动的AI和机器人创新
决战希腊:微软“创新杯”2009实况-——软件设计和嵌入式开发项目组决赛2
GERAT WALL GW-200/200H型彩色显示器的电源电路图
合见工软发布下一代高性能全功能数字仿真器和调试平台
基于发射分集的空时码及其应用
搞怪声音大比拼 ,UU又有好礼送!
GREAT WALL GW-100/100C型单色显示器的电源电路图