MySQL MID() 函式



MySQL 的 MID() 函式用於從給定字串中提取子字串。

它接受一個字串值和一個指定字串中位置(例如 pos)的數值作為引數,並返回從指定位置 pos 開始到字串末尾的給定字串的子字串。

它類似於 MySQL 的 SUBSTRING() 函式,但不同之處在於它指定子字串的起始位置和長度,而不是指定結束位置。

語法

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

MID(str, pos)

引數

此函式以字串值和起始位置作為引數。

返回值

此函式返回從給定字串中指定位置開始的子字串。

另一種語法

此函式還有第二種語法。在這種語法中,除了字串和位置值之外,它還接受另一個表示所需結果子字串長度(例如 len)的數值。

MID(str, pos, len)

示例

在以下示例中,我們從位置 11 開始提取到字串“Welcome to Tutorialspoint”末尾的子字串:

SELECT MID('Welcome to Tutorialspoint', 11);

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

MID('Welcome to Tutorialspoint', 11)
Tutorialspoint

示例

在這裡,我們檢索從位置 15 開始且長度為 15 的子字串:

SELECT MID('Hello how are you welcome to Tutorialspoint', 15, 15);

獲得的輸出如下:

MID('Hello how are you welcome to Tutorialspoint', 15, 15)
you welcome to

示例

您還可以使用 FROM 子句代替逗號來指定 pos 和 len,如下例所示:

SELECT ('Welcome to Tutorialspoint' FROM 11);

我們得到如下輸出:

MID('Welcome to Tutorialspoint' FROM 11)
Tutorialspoint

示例

MID() 函式還允許您對 pos 使用負值。當您使用負 pos 時,結果子字串從給定字串末尾的指定字元數之後開始:

SELECT MID('Welcome to Tutorialspoint' FROM -11);

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

MID('Welcome to Tutorialspoint' FROM -11)
orialspoint

示例

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

SELECT MID('67326532 7822 879282 92', 15);

產生的結果如下所示:

MID('67326532 7822 879282 92', 15)
879282 92

示例

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

SELECT MID(NULL, 15);

我們得到如下所示的輸出:

MID(NULL, 15)
0x

示例

當您將“0”作為 pos 引數傳遞時,函式返回空字串:

SELECT MID('Hello how are you welcome to Tutorialspoint', 0, 15);

我們得到如下輸出:

MID('Hello how are you welcome to Tutorialspoint', 0, 15)

示例

如果作為 len 引數(第二種語法)的值傳遞的引數小於 1,則此函式返回空字串:

SELECT MID('Hello how are you welcome to Tutorialspoint', 5, -1);

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

MID('Hello how are you welcome to Tutorialspoint', 5, -1)
orialspoint

示例

您還可以使用 MID() 函式獲取表中列值的子字串。

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

以下查詢使用 MID() 函式從“LAST_NAME”列中檢索子字串:

SELECT FIRST_NAME, LAST_NAME, AGE, INCOME,  MID(LAST_NAME, 4) 
FROM EMP;

輸出

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

FIRST_NAME LAST_NAME AGE INCOME MID(LAST_NAME, 4)
Krishna Sharma 19 2000 rma
Raj Kandukuri 20 7000 dukuri
Ramya Ramapriya 25 5000 apriya
Mac Mohan 26 2000 an

示例

在以下查詢中,我們從 pos“2”開始,長度為“3”地檢索“LAST_NAME”列中的值:

SELECT FIRST_NAME, LAST_NAME, AGE, INCOME, MID(LAST_NAME, 2, 3) 
FROM EMP;

輸出

獲得的結果如下:

FIRST_NAME LAST_NAME AGE INCOME MID(LAST_NAME, 2, 3)
Krishna Sharma 19 2000 har
Raj Kandukuri 20 7000 and
Ramya Ramapriya 25 5000 ama
Mac Mohan 26 2000 oha
mysql-mid-function.htm
廣告