SQL функции и операторы сравнения значений в базах данных MySQL
Рубрика по базам данных: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Рубрика MySQL: http://zametkinapolyah.ru/zame....tki-o-mysql/server-m
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd
Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
MySQL поддерживает довольно-таки большой набор операторов и функция сравнения значений: BETWEEN ... AND ..., COALESCE(), =, GREATEST(), IN(), INTERVAL(), IS, IS NOT, IS NOT NULL, IS NULL, ISNULL(), LEAST(), LIKE, NOT BETWEEN ... AND ..., !=, NOT IN(), NOT LIKE, STRCMP().
Часть из них возвращает логические значения, как результат своей работы, а некоторые функции и операторы возвращают значения, исходя из того, что они получили.
-- Проверка на равенство значений
SELECT 1 = 0;
SELECT NULL = 0;
SELECT 1 = NULL;
SELECT NULL = NULL;
SELECT '0' = 0;
SELECT '0.0' = 0;
SELECT '0.01' = 0;
SELECT '.01' = 0.01;
-- Оператор проверки логического значения IS
SELECT 10 IS TRUE;
SELECT -10 IS TRUE;
SELECT 'string' IS NOT NULL;
SELECT '' IS TRUE;
SELECT '' IS FALSE;
SELECT ' ' IS TRUE;
SELECT 0 IS TRUE;
SELECT NULL IS TRUE;
SELECT NULL IS FALSE;
-- Операторы IS NULL и IS NOT NULL или проверка на NULL
SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL;
SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;
-- Оператор между (не знаю как он правильно называются): ... BETWEEN ... AND ...
SELECT 2 BETWEEN 1 AND 3, 2 BETWEEN 3 and 1;
SELECT 1 BETWEEN 2 AND 3;
SELECT 2.5 BETWEEN 2 AND 3;
SELECT 4 BETWEEN 2 AND 3;
SELECT 'b' BETWEEN 'a' AND 'c';
SELECT 'b' NOT BETWEEN 'a' AND 'c';
SELECT 1 NOT BETWEEN 2 AND 3;
SELECT 4 NOT BETWEEN 2 AND 3;
SELECT 2.5 NOT BETWEEN 2 AND 3;
-- Следующая функция MySQL сравнивает значения и возвращает первое попавшееся, которое не равно NULL
SELECT COALESCE(NULL,1, 55, 'hello');
SELECT COALESCE(NULL,NULL,NULL);
-- Следующая функция MySQL сравнивает значения и возвращает наибольшее
SELECT GREATEST(2,0);
SELECT GREATEST(34.0,3.0,5.0,767.0);
SELECT GREATEST('B','A','C');
SELECT GREATEST('B','A','C', NULL);
-- Оператор IN. Данный оператор в SQL и базах данных MySQL имеет два операнда. Первый операнд сравниваемое значение, второй - набор значений, с которым сравнивается первый операнд.
SELECT 2 IN (0,3,5,7);
SELECT 'wefwf' IN ('wee','wefwf','weg');
SELECT (3,4) IN ((1,2), (3,4));
SELECT (3,4) IN ((1,2), (3,5));
SELECT 2 NOT IN (0,3,5,7);
SELECT 'wefwf' NOT IN ('wee','wefwf','weg');
-- В базах данных MySQL есть функция ISNULL(), в качестве аргумента она принимает выражение и проверяет его результат на NULL
SELECT ISNULL(1+1);
SELECT ISNULL(1/0);
-- Быстрая проверка/сортировка чисел.
0 1
SELECT INTERVAL(23, 1, 15, 17, 30, 44, 200);
SELECT INTERVAL(31, 30, 35, 17, 30, 44, 200);
SELECT INTERVAL(4, 6, 7, 8, 9, 10, 11);
-- Поиск наименьшего значения в базе данных MySQL
-- Если один из аргументов NULL, то результат всегда будет NULL
-- Если все аргументы INTEGER или могут быть приведены к INTEGER, то они сравниваются как целые цисла.
-- Если аргументы REAL или могут быть приведены к REAL, то они сравниваются как вещественные числа.
-- Если аргументы смешанные (строки и числа), то MySQL сравнивает их как числа.
-- Если аргументы - небинарные строки, то они сравниваются как небинарные строки.
-- Все остальные случаи MySQL сравнивает значения в бинарном виде, то есть как последовательность нулей и единиц.
SELECT LEAST(2,0);
SELECT LEAST(34.0,3.0,5.0,767.0);
SELECT LEAST('B','A','C');