當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


MySQL LOCATE()用法及代碼示例


MySQL中的LOCATE()函數用於查找字符串中子字符串的位置。它將返回字符串中子字符串首次出現的位置。如果字符串中不存在子字符串,則它將返回0。在字符串中搜索子字符串的位置時,它不會執行區分大小寫的搜索。

用法:

LOCATE(substring, string, start)

參數:

此方法接受三個參數。

  • 子串-
    要檢索其位置的字符串。
  • 字符串-
    要在其中檢索子字符串位置的字符串。
  • 開始-
    搜索的起始位置。它是可選的。默認為位置1。

返回值:
子字符串在字符串中首次出現的位置。



示例1:借助LOCATE函數在字符串‘geeksforgeeks’中搜索字符串‘f’。

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

輸出:

MATCHLOCATION
6

示例-2:借助LOCATE函數在字符串“學習SQL很有趣”中搜索字符串“ MYSQL”,因此它將返回0。

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

輸出:

MATCHLOCATION
0

示例3:從位置3開始,借助LOCATE Function在字符串‘geeksforgeeks’中搜索字符串‘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_ID STUDENT_NAME ROLL DEPARTMENT
1 艾尼克·比斯瓦斯(Anik Biswas) 10100 CSE
2 比娜·馬利克(Bina Mallick) 11000 ECE
3 阿妮克特·沙瑪 12000 IT
4 薩亞妮·薩曼塔(Sayani Samanta) 13000 ME
5 裏揚卡·沙(Riyanka Shah) 14000 EE
6 比平·科利(Bipin Kohli) 15000 CE

現在,借助LOCATE函數,我們將在Student_name列中找到字符串‘a’的第一個匹配項。

SELECT *, LOCATE('a', Student_name ) AS FirstOccurrenceOfA  
FROM STUDENT;
STUDENT_ID STUDENT_NAME ROLL DEPARTMENT FirstOccurrenceOfA
1 艾尼克·比斯瓦斯(Anik Biswas) 10100 CSE 1
2 比娜·馬利克(Bina Mallick) 11000 ECE 4
3 阿妮克特·沙瑪 12000 IT 1
4 薩亞妮·薩曼塔(Sayani Samanta) 13000 ME 2
5 裏揚卡·沙(Riyanka Shah) 14000 EE 4
6 比平·科利(Bipin Kohli) 15000 CE 0

相關用法


注:本文由純淨天空篩選整理自jana_sayantan大神的英文原創作品 LOCATE() function in MySQL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。