sql >> Databáze >  >> RDS >> MariaDB

Jak STRCMP() funguje v MariaDB

V MariaDB, STRCMP() je vestavěná funkce řetězce, která porovnává dva řetězce. Vrací 0 , -1 , nebo 1 , v závislosti na tom, zda jsou řetězce stejné nebo ne.

Zde jsou možné výsledky a jejich význam:

0 Řetězce jsou stejné.
-1 První argument je menší než druhý podle aktuálního pořadí řazení.
1 První argument je větší než druhý podle aktuálního pořadí řazení

Syntaxe

Syntaxe vypadá takto:

STRCMP(expr1,expr2)

Kde expr1 je první řetězec a expr2 je druhý řetězec.

Příklad

Zde je základní příklad:

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

Výsledek:

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

Tento příklad ukazuje každý možný výsledek, který STRCMP() může produkovat.

Zde je další příklad:

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

Výsledek:

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

Prázdné řetězce vs mezery

Výsledkem porovnání prázdného řetězce s mezerou je 0 :

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

Výsledek:

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

Nulové argumenty

Předávání null pro jakýkoli argument (nebo všechny argumenty) vrátí null :

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

Výsledek:

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

Chybí argument

Volání STRCMP() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT STRCMP();

Výsledek:

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

  1. Trendy databázového hardwaru a infrastruktury

  2. Přidejte identity AppPool IIS 7 jako přihlášení k serveru SQL

  3. Funkce NVL() v Oracle

  4. Jak importovat soubor XML do databázové tabulky MySQL pomocí XML_LOAD(); funkce