MySQL POSITION() 函式



MySQL 的 POSITION() 函式用於查詢給定字串中子字串的位置。

它以字串值和子字串作為引數,並返回指定子字串在原始字串中第一次出現的**位置**。

字串中第一個字元的位置從 1 開始。如果在原始字串中找不到子字串,則返回 0 作為輸出。它是**不區分大小寫**的搜尋。

MySQL 的 POSITION()LOCATE() 函式的同義詞。

語法

以下是 MySQL POSITION() 函式的語法:

POSITION(substring IN string);

引數

此函式以子字串和要搜尋的字串作為引數。

返回值

此函式返回子字串在字串中第一次出現的位置,如果未找到則返回 0。

示例

在以下示例中,我們使用 POSITION() 函式查詢給定字串中子字串“how”的位置:

SELECT POSITION('how' IN 'Hello how are you');

以下是上述程式碼的輸出:

POSITION('how' IN 'Hello how are you')
7

示例

您還可以以字串形式將數值作為引數傳遞給第一個引數:

SELECT POSITION('6522 7262 8972 92 112' IN 5);

獲得的輸出如下:

POSITION('6522 7262 8972 92 112' IN 5)
0

示例

如果提供的子字串在給定字串中找不到,則該函式返回 0:

SELECT POSITION('unknown' IN 'Tutorialspoint');

產生的結果如下:

POSITION('unknown' IN 'Tutorialspoint')
0

示例

如果傳遞給此函式的任何引數為 NULL,則返回 NULL:

SELECT POSITION(NULL IN 'Tutorialspoint');

以下是上述程式碼的輸出:

POSITION(NULL IN 'Tutorialspoint')
NULL

示例

讓我們建立一個名為“EMP”的表,並使用 CREATE 和 INSERT 語句向其中插入記錄,如下所示:

CREATE TABLE EMP(
   FIRST_NAME  CHAR(20) NOT NULL,
   LAST_NAME  CHAR(20),
   AGE INT,
   INCOME FLOAT
);

現在,讓我們使用 INSERT 語句向其中插入記錄:

INSERT INTO EMP VALUES 
('Krishna', 'Sharma', 19, 2000),
('Raj', 'Kandukuri', 20, 7000),
('Ramya', 'Ramapriya', 25, 5000),
('Mac', 'Mohan', 26, 2000);

獲得的 EMP 如下:

FIRST_NAME LAST_NAME AGE INCOME
Krishna Sharma 19 2000
Raj Kandukuri 20 7000
Ramya Ramapriya 25 5000
Mac Mohan 26 2000

以下查詢在 EMP 表的“LAST_NAME”列中搜索“ma”:

SELECT FIRST_NAME, LAST_NAME, AGE, POSITION('ma' IN LAST_NAME) as result
FROM EMP;

執行上述程式碼後,我們將獲得以下輸出:

FIRST_NAME LAST_NAME AGE 結果
Krishna Sharma 19 5
Raj Kandukuri 20 0
Ramya Ramapriya 25 3
Mac Mohan 26 0
mysql-position-function.htm
廣告