Двоичные операторы
:
? ~ — двоичная инверсия;
? & — двоичное И;
? | — двоичное ИЛИ;
? ^ — двоичное исключающее ИЛИ;
? << — сдвиг влево — сдвиг влево на один или более разрядов с заполне-
нием младших разрядов нулями;
? >> — сдвиг вправо — сдвиг вправо на один или более разрядов с запол-
нением старших разрядов содержимым самого старшего разряда.
6.7.3. Операторы сравнения
Операторы сравнения используются, прежде всего, в конструкциях WHERE и
HAVING при создании запросов. Перечислим их:
? = — равно;
? <=> — эквивалентно;
? != — не равно;
? <> — не равно;
? < — меньше;
? > — больше;
? <= — меньше или равно;
? >= — больше или равно;
? IS NOT NULL — проверка на наличие значения;
? IS NULL — проверка поля на отсутствие значения;
? BETWEEN <Начало> AND <Конец> — проверяет, является ли значение большим или равным <Начало> и меньшим или равным <Конец>, напри- мер, pole BETWEEN 0 AND 100;
? IN — содержится в определенном наборе, например, pole IN (‘HDD’,
‘Монитор’);
? NOT IN — не содержится в определенном наборе, например, pole NOT IN (‘HDD’,’Монитор’);
? LIKE — соответствие шаблону SQL;
? NOT LIKE — несоответствие шаблону SQL;
? RLIKE — соответствие регулярному выражению;
? REGEXP — соответствие регулярному выражению (синоним RLIKE);
? NOT RLIKE — несоответствие регулярному выражению;
? NOT REGEXP — несоответствие регулярному выражению (синоним NOT RLIKE).
В шаблоне SQL могут использоваться следующие символы:
? % — любое количество символов;
? _ — любой одиночный символ.
Можно проверять сразу несколько условий, указав логические операции:
? AND — логическое И;
? OR — логическое ИЛИ;
? XOR — исключающее логическое ИЛИ.
Результатом операции сравнения являются:
? 0 — ложь;
? 1 — истина;
? NULL.
Исключением является оператор эквивалентности <=>. Он возвращает только два значения: 0 (ложь) и 1 (истина). Этот оператор введен специально для сравнения значения NULL.
Следует отметить, что по умолчанию сравнение строк происходит без учета регистра. Если указать ключевое слово BINARY, то регистр символов будет учитываться:
SELECT ‘TEXT’=’text’;
/* Выведет: 1 (истина) */ SELECT BINARY ‘TEXT’=’text’;
/* Выведет: 0 (ложь) */
Результат сравнения можно изменить на противоположный с помощью опе-
раторов ! и NOT.
SELECT ‘TEXT’=’text’;
/* Выведет: 1 (истина) */ SELECT !(‘TEXT’=’text’);
/* Выведет: 0 (ложь) */ SELECT NOT (‘TEXT’=’text’);
/* Выведет: 0 (ложь) */
Логические выражения следует заключать в круглые скобки, так как приори-
тет оператора отрицания выше приоритета других операторов.
6.7.4. Приоритет выполнения операторов
При составлении выражений следует учитывать приоритет выполнения опе-
раторов.
Перечислим операторы в порядке убывания приоритета:
1. BINARY, COLLATE.
2. NOT, !.
3. - (унарный минус), ~.
4. *, /, %, MOD, DIV.
5. +, - — сложение, вычитание.
6. <<, >> — двоичные сдвиги.
7. & — двоичное И.
8. | — двоичное ИЛИ.
9. =, <=>, >=, <=, >, <, <>, !=, IS, LIKE, REGEXP, IN.
10. BETWEEN.
11. &&, AND.
12. ||, OR, XOR.
С помощью круглых скобок можно изменить последовательность выполне-
ния выражения:
SELECT 5 + 3 * 7;
/* Выведет: 26 */ SELECT (5 + 3) * 7;
/* Выведет: 56 */
6.7.5. Преобразование типов данных
В большинстве случаев преобразование типов осуществляется автоматиче- ски. В этом разделе мы рассмотрим результаты автоматического преобразо- вания типов, а также встроенные функции для специального приведения ти- пов.
Что будет, если к числу прибавить строку?
SELECT ‘5’ + 3;
/* Выведет: 8 */ SELECT ‘5st’ + 3;
/* Выведет: 8 */
В этом случае строка преобразуется в число, а затем выполняется операция сложения. Но что будет, если строку невозможно преобразовать в число?
SELECT ‘str’ + 3;
/* Выведет: 3 */ SELECT 3 + ‘str’;
/* Выведет: 3 */
Если строку невозможно преобразовать в число, то она приравнивается к нулю.
Для явного преобразования типов используются две функции:
? CAST(<Выражение> AS <Тип>);
? CONVERT(<Выражение>, <Тип>).
Параметр <Тип> может принимать следующие значения:
? BINARY;
? CHAR;
? DATE;
? DATETIME;
? SIGNED [INTEGER];
? TIME;
? UNSIGNED [INTEGER].
Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)