Хранимая процедура, у меня есть оператор if else, где я выполняюсь до тех пор, пока оператор if

DELIMITER //
CREATE PROCEDURE valor()
BEGIN
IF (select Garantia from repuestos_repuesto where Garantia = 'N' limit 1) = 'N' then
    Select  re.id ,ve.marca, ve.modelo, ve.año, re.Nombre_repuesto 
    from vehiculos_vehiculo as ve inner join repuestos_repuesto as re on re.Vehiculo_id = ve.id 
    where ve.marca='Chevrolet' and ve.modelo='Aveo Family' and ve.año = '2015' and re.Nombre_repuesto = 'Guardachoque' and  re.Garantia = 'N'  
    Order By re.Precio Limit 1; 
else
    Select  re.id ,ve.marca, ve.modelo, ve.año, re.Nombre_repuesto 
    from vehiculos_vehiculo as ve inner join repuestos_repuesto as re on re.Vehiculo_id = ve.id 
    where ve.marca='Chevrolet' and ve.modelo='Aveo Family' and ve.año = '2015' and re.Nombre_repuesto = 'Guardachoque' and  re.Garantia = 'S'  
    Order By re.Precio Limit 1; 
END IF;
END //

DELIMITER ;

call valor()

Идея заключается в том, что в первом if он возвращает мне автомобили без гарантии и показывает самую низкую цену, а в else - те, у которых есть гарантия, но он не показывает мне никаких данных, когда переходит к else.

Вернуться на верх