📜  MySQL 中的 STRCMP()函数

📅  最后修改于: 2021-09-09 10:14:17             🧑  作者: Mango

MySQL 中的STRCMP ()函数用于比较两个字符串。如果两个字符串相同,则返回 0,如果根据定义的顺序第一个参数小于第二个参数,则返回 -1,当第二个参数小于第一个参数时返回 1。

语法: STRCMP(Str1, Str2)

参数:此方法接受如下所述的两个参数:

  • str1 :它是用于比较的第一个字符串。
  • str2 :它是用于比较的第二个字符串。

返回:它可以给出四种值——

  • 如果 string1 = string2,则此函数返回 0
  • 如果 string1 < string2,则此函数返回 -1
  • 如果 string1 > string2,则此函数返回 1
  • 如果任何一个或两个字符串为 NULL,则此函数返回 NULL 。

示例 1:用于比较两个相等字符串的STRCMP()函数。由于两个给定的字符串相等,它将返回 0。

Select STRCMP('Geeks', 'Geeks') As 'Cmp_Value'

输出 :

Cmp_Value
0

实施例-2:strcmp()的函数来比较两个字符串,当第二字符串比第一字符串小。在这里,返回值将为 1。

Select STRCMP('Geeks', 'Geek') As 'Cmp_Value'

输出 :

Cmp_Value
1

实施例-3:strcmp()的函数来比较两个字符串,当第二字符串比第一字符串更大。由于第二个字符串大于第一个字符串,结果将为 -1。

Select STRCMP('Geek', 'Geeks') As 'Cmp_Value'

输出 :

Cmp_Value
-1

示例 4: STRCMP()函数在至少一个字符串为 NULL 时比较两个字符串。

Select STRCMP('Geek', NULL) As 'Cmp_Value'

输出 :

Cmp_Value
NULL

示例 5: STRCMP()函数也可用于列数据。为了演示创建一个名为 StudentDetails 的表。

CREATE TABLE StudentDetails(

    Student_id INT AUTO_INCREMENT,  
    First_name VARCHAR(100) NOT NULL,
    Last_name VARCHAR(100) NOT NULL,
    Student_Class VARCHAR(20) NOT NULL,
    TotalExamGiven INT   NOT NULL,
    PRIMARY KEY(Student_id )

插入数据到表中:

INSERT INTO  
    StudentDetails(First_name, Last_name, Class, TotalExamGiven )

VALUES
    ('Sayan', 'Jana', 'IX', 8 ),
    ('Nitin', 'Sharma', 'X',  5 ),
    ('Aniket', 'Srivastava', 'XI', 6 ),
    ('Abdur', 'Ali', 'X',  7 ),
    ('Riya', 'Malakar', 'IX', 4 ),
    ('Jony', 'Patel', 'X', 10 ),
    ('Deepak', 'Saini',  'X',  7 ),
    ('Ankana', 'Biswas',  'XII', 5 ),
    ('Shreya', 'Majhi', 'X',  8 ) ;

要验证使用以下命令如下。

SELECT * FROM StudentDetails;

输出 :

STUDENT_ID FIRST_NAME LAST_NAME CLASS TOTALEXAMGIVEN
1 Sayan Jana IX 8
2 Nitin Sharma X 5
3 Aniket Srivastava XI 6
4 Abdur Ali X 7
5 Riya Malakar IX 4
6 Jony Patel X 10
7 Deepak Saini X 7
8 Ankana Biswas XII 5
9 Shreya Majhi X 8

现在,我们将使用 STRCMP 函数比较 First_Name 和 Last_Name 列。

SELECT First_Name, Last_Name,
STRCMP(First_Name, Last_Name) AS Cmp_Value 
FROM StudentDetails;

输出 :

FIRST_NAME LAST_NAME CMP_VALUE
Sayan Jana 1
Nitin Sharma -1
Aniket Srivastava -1
Abdur Ali -1
Riya Malakar 1
Jony Patel -1
Deepak Saini -1
Ankana Biswas -1
Shreya Majhi 1