📜  MySQL 中的 LOCATE()函数

📅  最后修改于: 2022-05-13 01:55:02.515000             🧑  作者: Mango

MySQL 中的 LOCATE()函数

MySQL 中的LOCATE()函数用于查找字符串中子字符串的位置。它将返回子字符串在字符串中第一次出现的位置。如果字符串中不存在子字符串,则它将返回 0。在字符串中搜索子字符串的位置时,它不会执行区分大小写的搜索。

句法 :

LOCATE(substring, string, start)

参数 :

该方法接受三个参数。

  • 子串 –
    要检索其位置的字符串。
  • 字符串–
    要在其中检索子字符串位置的字符串。
  • 开始 -
    搜索的起始位置。它是可选的。位置 1 是默认值。

回报:
子字符串在字符串中第一次出现的位置。

示例 1:在 LOCATE函数的帮助下搜索字符串'f'。

SELECT LOCATE('f', 'geeksforgeeks') AS MatchLocation;

输出 :

MATCHLOCATION
6

示例 2:在 LOCATE函数的帮助下搜索字符串'MYSQL'。因此,它将返回 0。

SELECT LOCATE('MYSQL', 'Learning SQL is fun') AS MatchLocation;

输出 :

MATCHLOCATION
0

示例 3:在 LOCATE函数的帮助下从位置 3 开始搜索字符串'g'。

SELECT LOCATE('g', 'geeksforgeeks', 3) AS MatchLocation;

输出 :

MATCHLOCATION
9

示例 4:
LOCATE函数也可用于列数据。为了演示创建一个名为 Student 的表。

CREATE TABLE Student
(
Student_id INT AUTO_INCREMENT,  
Student_name VARCHAR(100) NOT NULL,
Roll INT NOT NULL,
Department VARCHAR(10) NOT NULL,
PRIMARY KEY(Student_id )
);

向学生表插入一些数据:

INSERT INTO Student
(Student_name, Roll, Department )
VALUES
('Anik Biswas ', 10100, 'CSE'),
('Bina Mallick', 11000, 'ECE' ),
('Aniket Sharma', 12000, 'IT' ),
('Sayani Samanta', 13000, 'ME'  ),
('Riyanka Shah ', 14000, 'EE' ),
('Bipin Kohli', 15000, 'CE' );

因此,学生表如下。

SELECT  * from Student ;
STUDENT_IDSTUDENT_NAMEROLLDEPARTMENT
1Anik Biswas10100CSE
2Bina Mallick11000ECE
3Aniket Sharma12000IT
4Sayani Samanta13000ME
5Riyanka Shah14000EE
6Bipin Kohli15000CE

现在,我们将在 LOCATE函数的帮助下在 Student_name 列中找到字符串'a' 的第一次出现。

SELECT *, LOCATE('a', Student_name ) AS FirstOccurrenceOfA  
FROM STUDENT;
STUDENT_IDSTUDENT_NAMEROLLDEPARTMENTFirstOccurrenceOfA
1Anik Biswas10100CSE1
2Bina Mallick11000ECE4
3Aniket Sharma12000IT1
4Sayani Samanta13000ME2
5Riyanka Shah14000EE4
6Bipin Kohli15000CE0