sql >> Database >  >> RDS >> MariaDB

Hoe STRCMP() werkt in MariaDB

In MariaDB, STRCMP() is een ingebouwde tekenreeksfunctie die twee tekenreeksen vergelijkt. Het retourneert 0 , -1 , of 1 , afhankelijk van of de snaren hetzelfde zijn of niet.

Hier zijn de mogelijke resultaten en wat ze betekenen:

0 De snaren zijn hetzelfde.
-1 Het eerste argument is kleiner dan het tweede volgens de huidige sorteervolgorde.
1 Het eerste argument is groter dan het tweede volgens de huidige sorteervolgorde

Syntaxis

De syntaxis gaat als volgt:

STRCMP(expr1,expr2)

Waar expr1 is de eerste string, en expr2 is de tweede string.

Voorbeeld

Hier is een eenvoudig voorbeeld:

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

Resultaat:

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

Dit voorbeeld demonstreert elke mogelijke uitkomst die STRCMP() kan produceren.

Hier is nog een voorbeeld:

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

Resultaat:

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

Lege tekenreeksen versus spaties

Het vergelijken van een lege string met een spatie resulteert in 0 :

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

Resultaat:

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

Nullargumenten

Doorgeven van null voor elk argument (of alle argumenten) retourneert null :

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

Resultaat:

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

Ontbrekend argument

STRCMP() . aanroepen met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten resulteert in een fout:

SELECT STRCMP();

Resultaat:

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

  1. Hoe voeg ik een byte [] in een SQL Server VARBINARY-kolom in?

  2. Oracle-schemagebruiker kan geen tabel maken in procedure

  3. Cheatsheet voor PostgreSQL-configuratie

  4. ListView Van Sqlite in Android