MySQL STRCMP() 函式



MySQL 的STRCMP()函式接受兩個字串值作為引數並比較它們 -

  • 如果兩個字串相等,則此函式返回 0。
  • 如果第一個引數大於第二個引數,則此函式返回 1。
  • 如果第一個引數小於第二個引數,則此函式返回 -1。
  • 如果任一引數為 NULL,則此函式返回 NULL。
  • 如果兩個引數都包含空字串,則此函式返回 0 作為結果。

語法

以下是 MySQL STRCMP() 函式的語法 -

STRCMP(expr1, expr2)

引數

此函式將兩個字串值作為引數。

返回值

如果字串相等,則此函式返回 0;如果第一個字串更大,則返回正值;如果第二個字串更大,則返回負值。

示例

在以下示例中,我們比較兩個相等的字串 -

SELECT STRCMP('tutorialspoint', 'tutorialspoint');

以上程式碼的輸出如下 -

STRCMP('tutorialspoint', 'tutorialspoint')
0

示例

在這裡,我們比較兩個字串,其中第一個字串按字母順序小於第二個字串 -

SELECT STRCMP('test', 'text');

以上程式碼的輸出如下所示 -

STRCMP('test', 'text')
-1

示例

現在,我們比較兩個字串,其中第一個字串按字母順序大於第二個字串 -

SELECT STRCMP('banana', 'apple');

獲得的輸出如下 -

STRCMP('banana', 'apple')
1

示例

如果此函式的兩個引數都為空,則返回 0。 -

SELECT STRCMP('', '');

我們得到以下輸出 -

STRCMP('', '')
0

示例

如果此函式的任一引數為 NULL,則返回 NULL -

SELECT STRCMP(NULL, 'test');

以上程式碼的輸出如下 -

STRCMP(NULL, 'test')
NULL

示例

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

SELECT STRCMP(225, 56);

以上程式碼的輸出如下所示 -

STRCMP(225, 56)
-1

示例

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

CREATE TABLE STUDENTS_TABLE (
   name VARCHAR(15),
   marks INT,
   grade CHAR
);

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

INSERT INTO STUDENTS_TABLE VALUES 
('Raju', 80, 'A'),
('Rahman', 60, 'B'),
('Robert', 45, 'C');

獲得的 STUDENTS_TABLE 如下 -

姓名 分數 等級
Raju 80 A
Rahman 60 B
Robert 45 C

以下查詢將“name”列的實體與字串“Raju”進行比較並檢索結果 -

SELECT name, marks, grade, STRCMP(name, 'Raju')
FROM STUDENTS_TABLE;

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

姓名 分數 等級 STRCMP(name, 'Raju')
Raju 80 A 0
Rahman 60 B -1
Robert 45 C 1
mysql-strcmp-function.htm
廣告