как определить хранимые процедуры, которые принимают 2 параметра

StackOverflow https://stackoverflow.com//questions/25057273

  •  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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top