Я совершенно новый с хранимой процедурой, и я пытаюсь понять ее основные понятия. Это мой первый и, конечно, что-то не так.MySql Сохраненная процедура WHERE «variabilised» в соответствии с параметром
В принципе, запрос будет таким же (оригинал более сложный и есть другие операции), но предложение WHERE изменяется в соответствии с параметром selType
. Так что я пытаюсь сделать, это своего рода «вариализация» предложения WHERE
в соответствии с значением параметра. Я не знаю, правильно ли это, и если да, то что с ним не так.
DELIMITER //
CREATE PROCEDURE `testProcedure` (IN addressId INT, IN selType BOOLEAN)
BEGIN
DECLARE whereUserCriteria VARCHAR(127);
IF selType = 1 THEN
SET whereUserCriteria = CONCAT('address_id = ', addressId);
ELSE
SET whereUserCriteria = 'address_id = 1';
END IF;
SELECT whatever
FROM wherever AS ad
WHERE whereUserCriteria ;
END //
Приятно видеть, что, когда он не variabilised, это работает отлично, но, как только я использовать переменную, чтобы сделать его динамичным, он перестает работать. Конечно, это простой пример, который поможет понять, что лучше всего подходит в таких случаях.
Если вы хотите создать проверку динамического запроса [** this **] (http://stackoverflow.com/a/5728155/3470178) –