MySQL INSTR() 函式



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

它接受兩個引數:第一個引數是原始字串,第二個引數是要在原始字串中搜索的子字串。

此函式查詢並返回子字串在提供的字串中的起始位置(索引)。如果在原始字串中找不到子字串,則此函式返回 0。如果將 NULL 傳遞給任一引數,則此函式返回 NULL 作為結果。

語法

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

INSTR(str,substr)

引數

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

返回值

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

示例

在以下示例中,我們將在給定字串中搜索子字串“how”:

SELECT INSTR('Hello how are you', 'how');

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

INSTR('Hello how are you', 'how')
7

示例

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

SELECT INSTR('Tutorialspoint', 'unknown');

獲得的輸出如下:

INSTR('Tutorialspoint', 'unknown')
0

示例

您還可以將數值作為字串引數傳遞給此函式:

SELECT INSTR('638235 25 28 261 91', '25');

我們得到以下輸出:

INSTR('638235 25 28 261 91', '25')
8

示例

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

SELECT INSTR(NULL, 'point');

生成的輸出如下所示:

INSTR(NULL, 'point')
NULL

示例

您還可以使用 INSTR() 函式搜尋表列值中的子字串。

讓我們建立一個名為“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

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

SELECT FIRST_NAME, LAST_NAME, AGE, INSTR(LAST_NAME, 'ma') 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-instr-function.htm
廣告