龙空技术网

Mysql字符串截取总结left()right()substring()substring_index()

程序员界的彭于晏 462

前言:

目前咱们对“mysql取字符串前几位”可能比较关注,你们都想要知道一些“mysql取字符串前几位”的相关文章。那么小编同时在网摘上搜集了一些对于“mysql取字符串前几位””的相关知识,希望兄弟们能喜欢,小伙伴们一起来了解一下吧!

在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现比通过代码实现要更方便快捷些,mysql有很多字符串函数可以用来处理这些需求,如Mysql字符串截取总结:left()、right()、substring()、substring_index()。

一.从左开始截取字符串

用法:left(str, length),即:left(被截取字符串, 截取长度)

SELECT LEFT('abcdefghijklm',8)

结果为:abcdefgh

二.从右开始截取字符串

用法:right(str, length),即:right(被截取字符串, 截取长度)

SELECT RIGHT('abcdefghijklm',6)

结果为:hijklm

三.截取特定长度的字符串

用法:

substring(str, pos),即:substring(被截取字符串, 从第几位开始截取)substring(str, pos, length),即:substring(被截取字符串,从第几位开始截取,截取长度)

1.从字符串的第9个字符开始读取直至结束

SELECT SUBSTRING('abcdefghijklmn', 9)

结果为:ijklmn

2.从字符串的第9个字符开始,只取3个字符

SELECT SUBSTRING('abcdefghijklmn', 9, 3)

结果为:ijk

3.从字符串的倒数第6个字符开始读取直至结束

SELECT SUBSTRING('abcdefghijklmn', -6)

结果为:ijklmn

4.从字符串的倒数第6个字符开始读取,只取2个字符

SELECT SUBSTRING('abcdefghijklmn', -6, 2)

结果为:ij

四.按关键字进行读取

用法:substring_index(str, delim, count),即:substring_index(被截取字符串,关键字,关键字出现的次数)

1.截取第二个“.”之前的所有字符

SELECT SUBSTRING_INDEX('abcde.fghijklmn', '.', 2);

结果为:abcde

2.截取倒数第二个“.”之后的所有字符

SELECT SUBSTRING_INDEX('abcdefghij.klmn', '.', -2);

结果为:klmn

3.如果关键字不存在,则返回整个字符串

SELECT SUBSTRING_INDEX('abcd', 'sprite', 1);结果为:abcd

标签: #mysql取字符串前几位