Мне нужно присвоить значение цены, которая найдется в таблице минимальной цене, если цена ниже, либо максимальной, если цена выше.
Но у меня выдает ошибку, ничего не понимаю, что мне нужно сделать?
таблица services
CREATE TABLE `services` (
`id_service` int(11) unsigned NOT NULL,
`name_ser` char(40) NOT NULL,
`price` int(5) unsigned NOT NULL,
`date_give` date DEFAULT NULL,
`date_get` date DEFAULT NULL,
`ser_type` int(10) NOT NULL,
PRIMARY KEY (`id_service`),
KEY `prod` (`price`),
KEY `cena` (`price`),
KEY `servis_to_sertype` (`ser_type`),
CONSTRAINT `servis_to_sertype` FOREIGN KEY (`ser_type`) REFERENCES `sertype` (`ser_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
то, что мне нужно сделать
DELIMITER //
CREATE DEFINER = 'root'@'localhost' FUNCTION getTypes(idstup INT)
RETURNS int
BEGIN
declare prices,minprice,maxprice INT;
DECLARE is_end INT DEFAULT 0;
DECLARE id_curs CURSOR FOR SELECT * FROM services;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET is_end=1;
set prices:=(select price from services where services.id_service=idstup);
set minprice = 5000;
set maxprice = 15000;
OPEN id_curs;
FETCH id_curs INTO prices,minprice,maxprice;
WHILE is_end=0 DO
IF (prices>maxprice) then set prices=maxprice;
if (prices<minprice) then set prices = minprice;
SET is_end=1;
END IF;
end if;
FETCH id_curs INTO prices,minprice,maxprice;
END WHILE;
return prices;
CLOSE id_curs;
END //
Заполненая таблица services