как определить хранимые процедуры, которые принимают 2 параметра
-
21-12-2019 - |
Вопрос
Я пытаюсь определить хранимые процедуры, которые принимают 2 параметра, один из которых будет столбцом таблицы, который должен быть равен второму параметру, который я предоставлю.Код:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `selectUserByField`(IN _field varchar(150) , IN _value varchar(150))
BEGIN
SET @sql = CONCAT('SELECT * FROM Users WHERE', _field, '=' ,_value);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
Дело в том, что я не знаю, как предоставить параметр _value в виде строки.Если я запущу это так, я получу Mysql 1064 рядом с «=myEmail» (параметры, где «userEmail», «myEmail»).Спасибо !
Решение
В приведенном ниже коде вам не хватает пробела после WHERE
.Это должно быть так, как показано ниже;дайте пробел после WHERE
И в =
SET @sql = CONCAT('SELECT * FROM Users WHERE ', _field, ' = ' ,_value);
Не связан с StackOverflow