MySQL 字符串截取相关函数
MySQL 字符串截取相关函数
在工作中,可能需要将某些字段按某个分割符组成一个字符串作为字段值存取到数据库表中,比如某个任务对应三个结果,分别存储在不同的数据表中,这时可以将这三个不同表的主键按照约定的顺序进行组合(主键a:主键b:主键c)。当需要分别去查任务对应类别的详情信息时,可以截取特定位置的字符串(主键b) join 表b进行操作。正好最近也遇到这块操作,特意将 MySQL 字符串截取的相关函数做一个梳理,以便今后回顾。
一、left(str, len)
返回字符串 str 自左数的 len 个字符。如果任一参数为 NULL,则返回 NULL。
mysql> select left('shinejaie', 5);
+---------------------------------------------------------+
| left('shinejaie', 5) |
+---------------------------------------------------------+
| shine |
+---------------------------------------------------------+
1 row in set (0.00 sec)
二、right(str, len)
返回 str 右边末 len 位的字符。如果有的参数是 NULL 值,则返回 NULL。
mysql> select right('shinejaie', 4);
+---------------------------------------------------------+
| right('shinejaie', 4) |
+---------------------------------------------------------+
| jaie |
+---------------------------------------------------------+
1 row in set (0.00 sec)
三、substring_index(str, delim, count)
返回 str 中第 count 次出现的分隔符 delim 之前的子字符串。如果 count 为正数,将最后一个分隔符左边(因为是从左数分隔符)的所有内容作为子字符串返回;如果 count 为负值,返回最后一个分隔符右边(因为是从右数分隔符)的所有内容作为子字符串返回。在寻找分隔符时,函数对大小写是敏感的。如果在字符串 str 中找不到 delim 参数指定的值,就返回整个字符串。
mysql> select substring_index('home.cnblogs.com', '.', 2);
+---------------------------------------------------------+
| substring_index('home.cnblogs.com', '.', 2) |
+---------------------------------------------------------+
| home.cnblogs |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substring_index('home.cnblogs.com', '/', 2);
+---------------------------------------------------------+
| substring_index('home.cnblogs.com', '/', 2) |
+---------------------------------------------------------+
| home.cnblogs.com |
+---------------------------------------------------------+
1 row in set (0.00 sec)
四、substring() 与 substr() ---> substring(str, pos)、substring(str from pos)、substring(str, pos, len)、substring(str from pos for len)
在以上4种函数变种形式中,没有 len 参数的函数形式会返回自 str 中位置 pos 处之后的子字符串;有 len 参数的函数形式会返回自 str 中位置 pos 处之后,长度为 len 的子字符串。使用 FROM 的函数形式则是采用的标准的 SQL 语法。pos 参数也可能取负值,在这种情况下,取字符串的方式是从字符串 str 的末尾向前(而非从前往后),从这种逆向顺序的 pos 处开始取字符串。另外,负值的 pos 参数可用于任何形式的 substring() 函数中。
mysql> select substring('shinejaie', 6);
+---------------------------------------------------------+
| substring('shinejaie',6) |
+---------------------------------------------------------+
| jaie |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substr('shinejaie' from 6);
+---------------------------------------------------------+
| substr('shinejaie' from 6) |
+---------------------------------------------------------+
| jaie |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substring('shinejaie', -9, 5);
+---------------------------------------------------------+
| substring('shinejaie', -9, 5) |
+---------------------------------------------------------+
| shine |
+---------------------------------------------------------+
1 row in set (0.00 sec)
五、trim([{both | leading | trailing} [remstr] form] str)
将字符串 str去除 remstr 所指定的前缀或后缀,返回结果字符串。如果没有指定标识符both、leading,或trailing,则默认采用 both,即将前后缀都删除。remstr 其实是个可选参数,如果没有指定它,则删除的是空格。
mysql> select trim(' shinejaie ');
+---------------------------------------------------------+
| trim(' shinejaie ') |
+---------------------------------------------------------+
| shinejaie |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(leading 'cn_' from 'cn_shinejaiecn_');
+---------------------------------------------------------+
| trim(leading 'cn_' from 'cn_shinejaiecn_') |
+---------------------------------------------------------+
| shinejaiecn_ |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(both 'cn_' from 'cn_shinejaiecn_');
+---------------------------------------------------------+
| trim(both 'cn_' from 'cn_shinejaiecn_') |
+---------------------------------------------------------+
| shinejaie |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(trailing 'cn_' from 'cn_shinejaiecn_');
+---------------------------------------------------------+
| trim(trailing 'cn_' from 'cn_shinejaiecn_') |
+---------------------------------------------------------+
| cn_shinejaie |
+---------------------------------------------------------+
1 row in set (0.00 sec)
MySQL 字符串截取相关函数的更多相关文章
- MySQL 字符串截取SUBSTRING()函数
MySQL 字符串截取相关函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例: select left(content,200) as ab ...
- mysql字符串截取
mysql字符串截取 update zcat ) where lev1 is null; update zcat ) where lev2 is null; 函数: 1.从左开始截取字符串 left( ...
- Mysql字符串截取总结:left()、right()、substring()、substring_index()
同步首发:http://www.yuanrengu.com/index.php/20171226.html 在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现 ...
- MySQL 字符串截取函数
MySQL 字符串截取函数:left(), right(), substring(), substring_index().还有 mid(), substr().其中,mid(), substr() ...
- Mysql字符串截取:Left()、Right()、Substring()、Substring_index()
在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现比通过代码实现要更方便快捷些, mysql有很多字符串函数可以用来处理这些需求,如Mysql字符串截取总结: ...
- Mysql字符串截取总结及项目实际运用:left()、right()、substring()、substring_index()
在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现比通过代码实现要更方便快捷些,mysql有很多字符串函数可以用来处理这些需求,如Mysql字符串截取总结:l ...
- Mysql字符串截取_获取指定字符串中的数据
前言:本人遇到一个需求,需要在MySql的字段中截取一段字符串中的特定字符,类似于正则表达式的截取,苦于没有合适的方法,百度之后终于找到一个合适的方法:substring_index('www.sql ...
- Mysql字符串截取,去掉时间,匹配日期等于今日
Mysql字符串截取,去掉时间,匹配日期等于今日 方案一 select time from jsb where date(time)=date(now()); 方案二 ));
- java 字符串截取 - 最后带上mysql字符串截取比较
Java中的substring()方法有两个方法的重载,一个带一个参数的,一个带两个参数的. 第一种写法: substring(n);//从索引是n的字符开始截取,条件(n>=0,n<字符 ...
随机推荐
- 一个学生分数表,用sql语句查询出各班级的前三名
昨天去一家公司面试,被这道题难住了,哎,又失去一次好的机会. 回来 之后就再想这个问题 表结构及数据如下:
- (三)、Express 路由、静态文件、
一.路由 路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET.POST 等)组成的,涉及到应用如何响应客户端对某个网站节点的访问. 每一个路由都可以有一个或者多个 ...
- PHP 实现下载文件到本地
只需要在php文件中设置请求头就可以了,创建download.php文件,代码如下: $fileName = $_GET['filename']; //得到文件名 header( "Cont ...
- 金山词霸每日一句开放平台 .NET demo
先附上地址:http://open.iciba.com/?c=api 小金山提供了2种获取数据的方式 1. 通过填入自己的网站名称.网址.邮箱地址 来生成一段javascript脚本,直接将生成的代码 ...
- WCF中使用控件的委托,线程中的UI委托
UI界面: <Window x:Class="InheritDemo.Window1" xmlns="http://schemas.microsoft.com/wi ...
- vim之旅
本人是今年的毕业生, 大学很莫名的选择了一个电子商务专业. 由于专业没有实质性的东西可学,加上对电商不敢兴趣, 于是乎我有了大量的时间在宿舍里折腾电脑. 折腾了几年大三决定转业, 大四在还没找工作之前 ...
- App.config的学习笔记
昨天基本弄清config的使用之后,再看WP的API,晕了.结果WP不支持system.configuration命名空间,这意味着想在WP上用App.config不大可能了. WP具体支持API请查 ...
- 利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录)
利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录) 作者:王可利(Star·星星) 总结: 今天学习的jQ类库的使用,代码重复的比较多需要完善.严格区分大小写,在 $(" ...
- 使用VMDepot镜像快速部署CKAN开放数据门户
最新发布的CKAN VMDepot镜像针对中国用户强化了中文支持,提升了与MS Office办公软件的互操作性,并集成了常用插件和最佳实践配置参数. 使得CKAN原本十分复杂繁琐的部署流程变得非常简单 ...
- iOS学习之视图控制器
一.自定义视图(label-textField组合视图) 1.自定义视图:系统标准UI之外,自己组合出的新的视图. 2.优点:iOS提供了很多UI组件,借助它们我们可以实现不同的功 ...