MySQL 中的子字符串

Preet Sanghavi 2023年1月3日 2022年5月13日
MySQL 中的子字符串

在本教程中,我们旨在探索如何在 MySQL 中获取列的子字符串。

由于存储限制,数据库开发人员必须以较短的格式发送数据报告。在尝试挖掘数据或仅从冗长的字符串中获取相关信息时,还需要实际字符串的子字符串。

MySQL 为我们提供了处理此操作的 SUBSTR() 函数。SUBSTR() 函数接受三个参数:stringpositionlength

string 表示需要更改的长字符串。position 表示字符串需要更改的位置,length 表示输出字符串中所需的字符总数。

让我们了解这种方法是如何工作的。但在开始之前,我们必须通过创建一个包含几行的 student_details 表来创建一个虚拟数据集。

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

上面的查询创建了一个表,其中包含学生的名字和姓氏。要查看数据中的条目,我们使用以下代码。

SELECT * FROM student_details;

输出:

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

让我们尝试截断学生的姓氏。假设我们需要缩短姓氏来生成学生的电子邮件地址,则姓氏只能包含前三个字符。

MySQL 中的 SUBSTR 函数

SUBSTR() 函数的基本语法如下。

SUBSTR(string, position, length)

让我们尝试从 student_details 表中截断我们的列 stu_lastName。可以使用下面的查询来完成。

select SUBSTR(stu_lastName, 1, 3) as shortened_lastNames
from student_details

上面的代码给出了使用学生的缩短姓氏。

输出:

shortened_lastNames
San
Joh
Bro
Jos
Sha
Par
Mil
注意
在上面的代码中,我们使用别名 shortened_lastNames 和 MySQL 中的 AS 关键字。

因此,在 SUBSTR() 函数的帮助下,我们可以有效地拆分字符串并操作字符串的组件以在 MySQL 中生成替代项。

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

相关文章 - MySQL Query