STRCMP() în MySQL

Compară două texte și returnează -1, 0 sau 1, după ordinea lor alfabetică.

Sintaxă
STRCMP(sir1, sir2)

Ce face STRCMP()

STRCMP() returnează 0 dacă textele sunt egale, -1 dacă primul vine înainte în ordine alfabetică și 1 dacă vine după. Comparația folosește colația, deci cu setările implicite nu contează literele mari.

Parametri

Parametru Descriere
sir1 Primul text.
sir2 Al doilea text.

Ce returnează

-1, 0 sau 1 (NULL dacă un argument este NULL).

Exemple

Exemplul 1: Ordinea alfabetică

SELECT STRCMP('mere', 'pere') AS a,
       STRCMP('pere', 'mere') AS b,
       STRCMP('Mere', 'mere') AS c;

Rezultat

+----+---+---+
| a  | b | c |
+----+---+---+
| -1 | 1 | 0 |
+----+---+---+

Greșeli frecvente

  • Te aștepți ca STRCMP('Mere', 'mere') să dea 1. Cu colația implicită _ci (case insensitive) rezultatul este 0. Pentru comparație exactă folosește o colație binară: STRCMP(BINARY 'Mere', 'mere') sau COLLATE utf8mb4_bin.

Comenzi înrudite

  • Operatori de comparație: Compară două valori și returnează 1 (adevărat), 0 (fals) sau NULL.
  • LIKE: Caută texte după un model: începe cu, se termină cu, conține.
  • LOCATE(): Găsește poziția primei apariții a unui text în alt text (0 dacă lipsește).