W MariaDB, STRCMP()
to wbudowana funkcja łańcuchowa, która porównuje dwa łańcuchy. Zwraca 0
, -1
lub 1
, w zależności od tego, czy ciągi są takie same, czy nie.
Oto możliwe wyniki i ich znaczenie:
0 | Ciągi są takie same. |
-1 | Pierwszy argument jest mniejszy niż drugi zgodnie z bieżącym porządkiem sortowania. |
1 | Pierwszy argument jest większy niż drugi zgodnie z bieżącym porządkiem sortowania |
Składnia
Składnia wygląda tak:
STRCMP(expr1,expr2)
Gdzie expr1
jest pierwszym ciągiem, a expr2
jest drugim ciągiem.
Przykład
Oto podstawowy przykład:
SELECT
STRCMP('abc', 'abc') AS "1",
STRCMP('abc', 'def') AS "2",
STRCMP('def', 'abc') AS "3";
Wynik:
+---+----+---+ | 1 | 2 | 3 | +---+----+---+ | 0 | -1 | 1 | +---+----+---+
Ten przykład pokazuje każdy możliwy wynik, który STRCMP()
może produkować.
Oto kolejny przykład:
SELECT
STRCMP('Cat', 'Cattery') AS "1",
STRCMP('Dog', 'dog') AS "2",
STRCMP('Cow 07', 'Cow 007') AS "3";
Wynik:
+----+---+---+ | 1 | 2 | 3 | +----+---+---+ | -1 | 0 | 1 | +----+---+---+
Puste ciągi a spacje
Porównanie pustego ciągu ze spacją daje w wyniku 0
:
SELECT
STRCMP(' ', ''),
STRCMP('', ' ');
Wynik:
+-----------------+-----------------+ | STRCMP(' ', '') | STRCMP('', ' ') | +-----------------+-----------------+ | 0 | 0 | +-----------------+-----------------+
Argumenty zerowe
Przekazywanie null
dla dowolnego argumentu (lub wszystkich argumentów) zwraca null
:
SELECT
STRCMP(null, 'abc'),
STRCMP('abc', null),
STRCMP(null, null);
Wynik:
+---------------------+---------------------+--------------------+ | STRCMP(null, 'abc') | STRCMP('abc', null) | STRCMP(null, null) | +---------------------+---------------------+--------------------+ | NULL | NULL | NULL | +---------------------+---------------------+--------------------+
Brakujący argument
Wywołanie STRCMP()
z niewłaściwą liczbą argumentów lub bez przekazania jakichkolwiek argumentów powoduje błąd:
SELECT STRCMP();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STRCMP'