MySQL中的字段截取是指截取一个字符串中的一部分字符。这在实际应用中非常常见,比如需要将身份证号码中的出生年月日截取出来。
MySQL提供了几种方法来实现字段截取:
- SUBSTRING(str, pos, len):指定字符串str的起始位置pos和截取长度len,返回截取后的子字符串。
- SUBSTRING_INDEX(str, delim, count):指定字符串str和分隔符delim,返回从左边开始的第count个分隔符之前的子字符串。
下面分别介绍这两种方法的使用。
SUBSTRING函数
SUBSTRING函数的语法如下:
SUBSTRING(str, pos, len)
其中,str是要截取的字符串,pos是截取的起始位置,len是截取的长度。注意,起始位置是从1开始的,而不是从0开始。
例如,要从字符串"hello world"中截取前5个字符,可以使用以下语句:
SELECT SUBSTRING("hello world", 1, 5);
执行结果为:
hello
又例如,要从身份证号码中截取出生年月日,可以使用以下语句:
SELECT SUBSTRING("510101199912312345", 7, 8);
执行结果为:
19991231
SUBSTRING_INDEX函数
SUBSTRING_INDEX函数的语法如下:
SUBSTRING_INDEX(str, delim, count)
其中,str是要截取的字符串,delim是分隔符,count是从左边开始数的分隔符个数。
例如,要从字符串"hello,world,mysql"中截取第二个逗号之前的字符串,可以使用以下语句:
SELECT SUBSTRING_INDEX("hello,world,mysql", ",", 2);
执行结果为:
hello,world
又例如,要从URL中截取出域名,可以使用以下语句:
SELECT SUBSTRING_INDEX("https://www.example.com/page", "/", 3);
执行结果为:
https://www.example.com
以上就是MySQL中字段截取的两种方法。无论是SUBSTRING函数还是SUBSTRING_INDEX函数,都可以帮助我们提取字符串中的指定部分,方便我们的业务处理。