Функция MySQL для сравнения значений в таблице БД с предыдущими - PullRequest
4 голосов
/ 16 марта 2010

Я совершенно новичок в функциях SQL, и я хотел бы создать функцию для сравнения значений в таблице MySQL с предыдущими, и я не уверен, как это сделать.

Например (iId является входным значением)

DECLARE pVal INT(20);
DECLARE val INT(20);

SELECT price INTO pVal FROM products WHERE Id=iId;

SELECT price FROM products;

IF price == pVal THEN
SET val = price;
END IF;

Спасибо

1 Ответ

1 голос
/ 16 марта 2010

Я не был уверен, как выполнить запрос на выборку для таблицы, а затем вернуться из этой функции и вернуть несколько значений после того, как ими манипулируют. Также я был не уверен, что вы можете выполнить запрос SELECT в функции, которая возвращает более одной строки. Первый ответ заключается в том, что вы не можете вернуть массив данных или, я думаю, более одной строки из функции. Поэтому я думаю, что лучший способ сделать это - создать временную таблицу с возвращенным новым набором данных.

Пример


DROP TEMPORARY TABLE IF EXISTS employeeTemp;
   CREATE TEMPORARY TABLE employeeTemp AS
   SELECT id,start_date
    FROM employee;

Во-вторых, ответ «да». Вы можете запустить запрос SELECT внутри функции, чтобы получить более одной строки.

Извините, я совсем новичок в функциях MySQL.

...