注册

详解MySQL的SUBSTRING()函数:从字符串的指定位置开始提取指定数量的字符

SUBSTRING()函数简介

SUBSTRING()函数是MySQL中的字符串截取函数,可以从一个字符串中截取子字符串。它是一种十分常用的函数,在MySQL中使用非常方便。

SUBSTRING()函数的使用方法

SUBSTRING()函数常用的语法形式如下:

SUBSTRING(str,start,length)

其中,str表示需要截取的字符串;start表示截取的起始位置(从1开始计数);length表示截取的长度。

举例如下:

假设有一个字符串"Hello, MySQL!",我们要从中截取从第7个字符开始的长度为6的子字符串,那么可以这样写:

SELECT SUBSTRING('Hello, MySQL!', 7, 6);

执行后,会返回字符串"MySQL!"。

SUBSTRING()函数的实例应用

使用SUBSTRING()函数截取日期

假设有一个日期字符串"2019-08-08",我们需要从中截取出年份。可以通过SUBSTRING()函数实现,如下所示:

SELECT SUBSTRING('2019-08-08', 1, 4);

执行后,会返回字符串"2019",即截取了"2019-08-08"中的年份。

使用SUBSTRING()函数截取URL中的域名

假设有一个URL字符串"http://www.example.com/foo/bar",我们需要从中截取出域名。可以通过SUBSTRING()函数实现,如下所示:

SELECT SUBSTRING('http://www.example.com/foo/bar', 8, LENGTH('http://www.example.com/foo/bar') - POSITION('/' IN SUBSTRING('http://www.example.com/foo/bar', 8)) - 7);

执行后,会返回字符串"www.example.com",即截取了"http://www.example.com/foo/bar"中的域名。

在上述示例中,我们首先使用SUBSTRING()函数将"http://"去掉,然后在剩下的字符串中通过POSITION()函数找到第一个"/"的位置,然后再通过LENGTH()函数和减法获取域名的长度,最后再使用SUBSTRING()函数进行截取。