В MariaDB, STRCMP()
е вградена низова функция, която сравнява два низа. Връща 0
, -1
, или 1
, в зависимост от това дали низовете са еднакви или не.
Ето възможните резултати и какво означават те:
0 | Низовете са едни и същи. |
-1 | Първият аргумент е по-малък от втория според текущия ред на сортиране. |
1 | Първият аргумент е по-голям от втория според текущия ред на сортиране |
Синтаксис
Синтаксисът е така:
STRCMP(expr1,expr2)
Където expr1
е първият низ и expr2
е вторият низ.
Пример
Ето един основен пример:
SELECT
STRCMP('abc', 'abc') AS "1",
STRCMP('abc', 'def') AS "2",
STRCMP('def', 'abc') AS "3";
Резултат:
+---+----+---+ | 1 | 2 | 3 | +---+----+---+ | 0 | -1 | 1 | +---+----+---+
Този пример демонстрира всеки възможен резултат, който STRCMP()
може да произвежда.
Ето още един пример:
SELECT
STRCMP('Cat', 'Cattery') AS "1",
STRCMP('Dog', 'dog') AS "2",
STRCMP('Cow 07', 'Cow 007') AS "3";
Резултат:
+----+---+---+ | 1 | 2 | 3 | +----+---+---+ | -1 | 0 | 1 | +----+---+---+
Празни низове срещу интервали
Сравняването на празен низ с интервал води до 0
:
SELECT
STRCMP(' ', ''),
STRCMP('', ' ');
Резултат:
+-----------------+-----------------+ | STRCMP(' ', '') | STRCMP('', ' ') | +-----------------+-----------------+ | 0 | 0 | +-----------------+-----------------+
Нулеви аргументи
Предаването на null
за всеки аргумент (или всички аргументи) връща null
:
SELECT
STRCMP(null, 'abc'),
STRCMP('abc', null),
STRCMP(null, null);
Резултат:
+---------------------+---------------------+--------------------+ | STRCMP(null, 'abc') | STRCMP('abc', null) | STRCMP(null, null) | +---------------------+---------------------+--------------------+ | NULL | NULL | NULL | +---------------------+---------------------+--------------------+
Липсващ аргумент
Извикване на STRCMP()
с грешен брой аргументи или без подаване на аргументи води до грешка:
SELECT STRCMP();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STRCMP'