MySQL - STRCMP() Function



The MySQL STRCMP() function accepts two string values as a parameters and compares them −

  • If both strings are equal this function returns 0.
  • If first argument is greater than the second, this function returns 1.
  • If the first argument is smaller than the second, this function returns -1.
  • If either of the arguments is NULL, this function returns NULL.
  • If both the arguments holds empty strings, this function return 0 as result.

Syntax

Following is the syntax of MySQL STRCMP() function −

STRCMP(expr1, expr2)

Parameters

This function takes two string values as parameter.

Return Value

This function returns 0 if the strings are equal, a positive value if the first string is greater, and a negative value if the second string is greater.

Example

In the following example, we are comparing two equal strings −

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

Following is the output of the above code −

STRCMP('tutorialspoint', 'tutorialspoint')
0

Example

In here, we are comparing two strings where the first is smaller than the second alphabetically −

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

Output of the above code is as shown below −

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

Example

Now, we are comparing two strings where the first is greater than the second alphabetically −

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

The output obtained is as follows −

STRCMP('banana', 'apple')
1

Example

In both arguments of this function are empty, it returns 0. −

SELECT STRCMP('', '');

We get the output as follows −

STRCMP('', '')
0

Example

If the either of the arguments of this function is NULL, it returns NULL −

SELECT STRCMP(NULL, 'test');

Following is the output of the above code −

STRCMP(NULL, 'test')
NULL

Example

You can also pass numerical values as arguments to this function −

SELECT STRCMP(225, 56);

Output of the above code is as shown below −

STRCMP(225, 56)
-1

Example

Let us create a table named "STUDENTS_TABLE" and insert records into it using CREATE and INSERT statements as shown below −

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

Now, let us insert records into it using the INSERT statement −

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

The STUDENTS_TABLE obtained is as follows −

name marks grade
Raju 80 A
Rahman 60 B
Robert 45 C

Following query compares the entities of the column "name" with the string 'Raju' and retrieves the result −

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

After executing the above code, we get the following output −

name marks grade STRCMP(name, 'Raju')
Raju 80 A 0
Rahman 60 B -1
Robert 45 C 1
mysql-strcmp-function.htm
Advertisements