SUBSTR()函数是MySQL中用于截取字符串的函数,其作用是从指定字符串中截取一定长度的子字符串,然后返回该子字符串。
语法:
SUBSTR(str, pos, len)
函数参数:
str
:要截取子字符串的源字符串;pos
:截取子字符串的起始位置,位置索引从1开始计算;len
:截取子字符串的长度,可选参数。
函数返回值:
- 返回截取的子字符串。
使用例子1:
我们可以使用SUBSTR()函数来截取一个字段中的前3个字符,并将其作为一个新的字段保存。
假设我们有一个学生成绩表,记录学生的成绩单号(包含学生学号、考试时间和顺序编号)以及考试成绩,如下所示:
score_no score exam_date
-------- ----- ----------
00101-1 87 2021-05-01
00101-2 91 2021-05-01
00101-3 82 2021-05-01
00102-1 95 2021-05-01
00102-2 89 2021-05-01
00102-3 93 2021-05-01
现在我们要将成绩单号中的前5个字符(即学号)截取出来,作为一个新的字段保存。可以使用如下SQL语句:
SELECT score_no, score, exam_date, SUBSTR(score_no, 1, 5) AS stu_no
FROM score_table;
执行以上SQL语句得到的结果如下:
score_no score exam_date stu_no
-------- ----- ---------- ------
00101-1 87 2021-05-01 00101
00101-2 91 2021-05-01 00101
00101-3 82 2021-05-01 00101
00102-1 95 2021-05-01 00102
00102-2 89 2021-05-01 00102
00102-3 93 2021-05-01 00102
其中,新添加的字段stu_no
即为成绩单号中的前5个字符(学号)。
使用例子2:
我们可以使用SUBSTR()函数来截取一个字符串中的子字符串,然后进行一些运算。
假设我们有一个包含一些数字的字符串,例如“1234”,我们想要截取其中的前两个数字("12"),然后将其转换成整型进行计算,可以使用如下SQL语句:
SELECT CAST(SUBSTR('1234', 1, 2) AS SIGNED) + 1 AS result;
执行以上SQL语句得到的结果为:
result
------
13
其中,CAST(SUBSTR('1234', 1, 2) AS SIGNED)
用于将截取后的子字符串转换成整数类型,+1
是对其进行加1操作,最终得到的结果为13。