sql >> Database teknologi >  >> RDS >> MariaDB

Hvordan STRCMP() virker i MariaDB

I MariaDB, STRCMP() er en indbygget strengfunktion, der sammenligner to strenge. Det returnerer 0 , -1 eller 1 , alt efter om strengene er ens eller ej.

Her er de mulige resultater, og hvad de betyder:

0 Strengene er de samme.
-1 Det første argument er mindre end det andet i henhold til den aktuelle sorteringsrækkefølge.
1 Det første argument er større end det andet i henhold til den aktuelle sorteringsrækkefølge

Syntaks

Syntaksen ser sådan ud:

STRCMP(expr1,expr2)

Hvor expr1 er den første streng, og expr2 er den anden streng.

Eksempel

Her er et grundlæggende eksempel:

SELECT 
    STRCMP('abc', 'abc') AS "1",
    STRCMP('abc', 'def') AS "2",
    STRCMP('def', 'abc') AS "3";

Resultat:

+---+----+---+
| 1 | 2  | 3 |
+---+----+---+
| 0 | -1 | 1 |
+---+----+---+

Dette eksempel viser hvert muligt udfald, som STRCMP() kan producere.

Her er et andet eksempel:

SELECT 
    STRCMP('Cat', 'Cattery') AS "1",
    STRCMP('Dog', 'dog') AS "2",
    STRCMP('Cow 07', 'Cow 007') AS "3";

Resultat:

+----+---+---+
| 1  | 2 | 3 |
+----+---+---+
| -1 | 0 | 1 |
+----+---+---+

Tomme strenge vs. mellemrum

Sammenligning af en tom streng med et mellemrum resulterer i 0 :

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

Resultat:

+-----------------+-----------------+
| STRCMP(' ', '') | STRCMP('', ' ') |
+-----------------+-----------------+
|               0 |               0 |
+-----------------+-----------------+

Nul-argumenter

Sender null for ethvert argument (eller alle argumenter) returnerer null :

SELECT 
    STRCMP(null, 'abc'),
    STRCMP('abc', null),
    STRCMP(null, null);

Resultat:

+---------------------+---------------------+--------------------+
| STRCMP(null, 'abc') | STRCMP('abc', null) | STRCMP(null, null) |
+---------------------+---------------------+--------------------+
|                NULL |                NULL |               NULL |
+---------------------+---------------------+--------------------+

Manglende argument

Kalder STRCMP() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:

SELECT STRCMP();

Resultat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STRCMP'

  1. ReadyCloud ReadyShipper X

  2. SQL MELLEM-Smarte tips til at scanne efter en række værdier

  3. Hvordan kan jeg indstille et tilpasset dato-tidsformat i Oracle SQL Developer?

  4. Masseindlæsningsdatakonverteringsfejl (type uoverensstemmelse eller ugyldigt tegn for den angivne tegntabel) for række 1, kolonne 4 (år)