В случае когда в mysql нет функции подходящей вам для получения нужного значения Вы можете написать свою функцию.
Вот пример написания функции:
delimiter // create function `testoust`(s INT) returns integer begin set s = s * 2; return s; end//
Далее для создания функции запускаем скрипт "ОК"
DELIMITER указывает на символ-разделитель строки с командой, т.к. внутри CREATE FUNCTION есть набор вложенных команд, то для них мы оставляем стандартный разделитель ; а для указания завершения самой CREATE FUNCTION указываем //
RETURNS указывает тип данных который будет возвращён функцией
после оператора BEGIN мы прописываем саму функцию в данном случае мы берём введённое значение 's' и умножаем его на на 2 set s = s * 2 , далее строка RETURN s говорит о том что после вычисления функция должна вернуть значение переменной 's'
Для того что бы посмотреть как работает наша функция можем запустить элементарный запрос
SELECT testoust(50) as testvalue
результат:100
Наша функция умножила полученное значение в нашем случае 50 в 2 раза и вернула результат 100.
Так же она может умножить значение любого столбца в 2 раза
SELECT testoust(указываем название столбца с которым необходимо провести вычисление) as testvalue
Это пример наиболее элементарной функции на самом деле можно создавать гораздо более полезные функции.
|