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
广告