· Все параметры функции MATCH() должны быть столбцами одной и той же таблицы, т.е. частью одного и того же индекса FULLTEXT, за исключением работы MATCH() в режиме IN BOOLEAN MODE.
· Список столбцов в команде MATCH() должен точно соответствовать списку столбцов в определении индекса FULLTEXT для этой таблицы, за исключением работы данной функции MATCH() в режиме IN BOOLEAN MODE.
· Аргумент в выражении AGAINST() должен быть неизменяемой строкой.
select_expression может содержать следующие функции и операторы:
+ - * /
Арифметические действия.
%
Остаток от деления (как в C)
| &
Битовые функции (используется 48 бит).
- С
Смена знака числа.
<<
Осуществляет побитовый левый сдвиг целочисленного значения.
>>
Осуществляет побитовый правый сдвиг целочисленного значения.
BETWEEN(A,B,C)
(A >= B) AND (A <= C).
BIT_COUNT()
Количество бит.
ELT(N,a,b,c,d)
Возвращает a, если N == 1, b, если N == 2 и т. д. a, b, c, d строки.
ELT(3, “First”, “Second”, “Third”, “Fourth”) вернет “Third”.
FIELD(Z,a,b,c)
Возвращает a, если Z == a, b, если Z == b и т. д. a, b, c, d строки.
FIELD(“Second”, “First”, “Second”, “Third”, “Fourth”) вернет “Second”.
IF(A,B,C)
Если A истина (!= 0 and != NULL), то вернет B, иначе вернет C.
IFNULL(A,B)
Если A не null, вернет A, иначе вернет B.
ISNULL(A)
Вернет 1, если A == NULL, иначе вернет 0. Эквивалент ('A == NULL').
NOT !
NOT, вернет TRUE (1) или FALSE (0).
OR, AND
Вернет TRUE (1) или FALSE (0).
SIGN()
Вернет -1, 0 или 1 (знак аргумента).
expr LIKE expr
Вернет TRUE (1) или FALSE (0).
expr NOT LIKE expr
Вернет TRUE (1) или FALSE (0).
expr REGEXP expr
Проверяет строку на соответствие регулярному выражению expr.
expr NOT REGEXP expr
Проверяет строку на соответствие регулярному выражению expr.
select_expression может также содержать математические функции.
ABS()
Абсолютное значение (модуль числа).
EXP()
Экспонента.
FORMAT(nr,NUM)
Форматирует число в формат '#,###,###.##' с NUM десятичных цифр.
LOG()
Логарифм.
MOD()
Остаток от деления (аналог %).
POW()
Степень.
ROUND()
Округление до ближайшего целого числа.
RAND([integer_expr])
Случайное число типа float, 0 <= x <= 1.0, используется integer_expr как значение для запуска генератора.
SQRT()
Квадратный корень.
select_expression может также содержать одну или больше следующих строковых функций.
CONCAT()
Объединение строк.
INTERVAL(A,a,b,c,d)
Возвращает 1, если A == a, 2, если A == b... Если совпадений нет, вернет 0. A,a,b,c,d... строки.
INSERT(org,strt,len,new)
Заменяет подстроку org[strt...len(gth)] на new. Первая позиция строки=1.
LCASE(A)
Приводит A к нижнему регистру.
LEFT()
Возвращает строку символов, отсчитывая слева.
LENGTH()
Длина строки.
LOCATE(A,B)
Позиция подстроки B в строке A.
LOCATE(A,B,C)
Позиция подстроки B в строке A, начиная с позиции C.
LTRIM(str)
Удаляет все начальные пробелы из строки str.
REPLACE(A,B,C)
Заменяет все подстроки B в строке A на подстроку C.
RIGHT()
Get string counting from right.
RTRIM(str)
Удаляет хвостовые пробелы из строки str.
STRCMP()
Возвращает 0, если строки одинаковые.
SUBSTRING(A,B,C)
Возвращает подстроку из A, с позиции B до позиции C.
UCASE(A)
Переводит A в верхний регистр.
Несколько просто полезных функций, которые тоже можно применить в select_expression.
CURRDATE()
Текущая дата.
DATABASE()
Имя текущей базы данных, из которой выполняется выбор.
FROM_DAYS()
Меняет день на DATE.
NOW()
Текущее время в форматах YYYYMMDDHHMMSS или “YYYY-MM-DD HH:MM:SS”.
PASSWORD()
Шифрует строку.
PERIOD_ADD(P:N)
Добавить N месяцев к периоду P (в формате YYMM).
PERIOD_DIFF(A,B)
Возвращает месяцы между A и B. Обратите внимание, что PERIOD_DIFF работает только с датами в форме YYMM или YYYMM.
TO_DAYS()
Меняет DATE (YYMMDD) на номер дня.
USER()
Возвращает логин текущего пользователя.
WEEKDAY()
Возвращает день недели (0 = понедельник, 1 = вторник, ...).
Следующие функции могут быть использованы в предложении GROUP:
AVG()
Среднее для группы GROUP.
SUM()
Сумма элементов GROUP.
COUNT()
Число элементов в GROUP.
MIN()
Минимальный элемент в GROUP.
MAX()
Максимальный элемент в GROUP.
Здесь MIN() и MAX() могут принимать строку или число в качестве аргумента. Эти функции не могут использоваться в выражении, хотя их параметр может быть выражением:
Пример: “SUM(value/10)” нормально, но вот “SUM(value)/10” уже нет!