sql >> Databasteknik >  >> RDS >> MariaDB

Hur STRCMP() fungerar i MariaDB

I MariaDB, STRCMP() är en inbyggd strängfunktion som jämför två strängar. Den returnerar 0 , -1 , eller 1 , beroende på om strängarna är samma eller inte.

Här är de möjliga resultaten och vad de betyder:

0 Strängarna är desamma.
-1 Det första argumentet är mindre än det andra enligt den aktuella sorteringsordningen.
1 Det första argumentet är större än det andra enligt den aktuella sorteringsordningen

Syntax

Syntaxen ser ut så här:

STRCMP(expr1,expr2)

Där expr1 är den första strängen och expr2 är den andra strängen.

Exempel

Här är ett grundläggande exempel:

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

Resultat:

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

Det här exemplet visar alla möjliga resultat som STRCMP() kan producera.

Här är ett annat exempel:

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 |
+----+---+---+

Tömma strängar vs mellanslag

Att jämföra en tom sträng med ett mellanslag resulterar i 0 :

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

Resultat:

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

Nollargument

Skickar null för alla argument (eller alla argument) returnerar null :

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

Resultat:

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

Argument saknas

Anropar STRCMP() med fel antal argument, eller utan att skicka några argument resulterar i ett fel:

SELECT STRCMP();

Resultat:

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

  1. Vid dubblettnyckeluppdatering samma som infogning

  2. Är det möjligt att utföra korsdatabasfrågor med PostgreSQL?

  3. MySQL beställ efter före grupp efter

  4. Hur man visar nollvärden när man kör frågor i psql (PostgreSQL)