Здравствуйте.
Пытаюсь разобраться с хранимыми процедурами и переменными в mysql.
Вроде разницы между локальной и системной переменной только в области видимости, но конкретно в этой хранимой процедуре я никак не могу заменить системную переменную на локальную!
Как такое возможно изменить? И сможет ли кто изменить эту ранимую процедуру таким образом, чтобы вместо системной переменной использовалась локальная?
BEGIN
DECLARE ap1 TEXT;
DECLARE q1 VARCHAR(255);
SET @q1:= "SELECT t2.id visit_id, DATE_FORMAT(t2.date, '%d.%m.%Y %H:%i') visitdate,CONCAT(t1.name, ' ', t1.surname) doctor_name, t4.name disease_name, CONCAT(t3.name, ' ', t3.surname) pacient_name, t2.complaint as complaint, t2.treatment as treatment, t2.number_room as number_room, t2.visited as visited
FROM hospital.doctor t1
INNER JOIN registration.visit t2
ON t1.id = t2.id_doctor
INNER JOIN registration.pacient t3
ON t2.id_pacient = t3.id
LEFT JOIN registration.disease t4
ON t2.id_disease = t4.id";
IF doctor_id != '' THEN SET @q1:=CONCAT(@q1," WHERE t2.id_doctor = ", doctor_id); END IF;
PREPARE qr FROM @q1;
EXECUTE qr;
END