strcmp()

On this page

The strcmp(v1, v2) function takes two string values. It returns 0 if they are equal, -1 if v1 is less than v2, and 1 if v2 is greater than v1.

It returns NULL if either input is NULL.

For example:

CREATE TABLE sc_r (t varchar(20));
INSERT INTO sc_r VALUES('blue'), ('orange'), ('yellow');
SELECT r1.t, r2.t, strcmp(r1.t, r2.t) FROM sc_r AS r1, sc_r AS r2;
+--------+--------+--------------------+
| t      | t      | strcmp(r1.t, r2.t) |
+--------+--------+--------------------+
| blue   | blue   |                  0 |
| blue   | orange |                 -1 |
| blue   | yellow |                 -1 |
| orange | blue   |                  1 |
| orange | orange |                  0 |
| orange | yellow |                 -1 |
| yellow | blue   |                  1 |
| yellow | orange |                  1 |
| yellow | yellow |                  0 |
+--------+--------+--------------------+

Caution

Implicit Collation

When character_set_server is set to utf8, string literals with characters using 4-byte encoding are implicitly assigned binary collation and processed as a sequence of bytes rather than characters. This implicit conversion to binary collation causes string functions to return unexpected results. To avoid using implicit binary collation, either use explicit type casting or use database columns defined with the utf8mb4 character set.

For more information, refer to Implicit Collation in Special Cases.

Last modified: February 28, 2023

Was this article helpful?