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 paramを文字列として提供する方法がわからないことです。私がこのように走るならば、私は '= MyEmail'の近くのMySQL 1064(params where'useremail '、' myemail ')を手に入れる。ありがとう!
解決
下記のコードでは、WHERE
の後にスペースがありません。それは以下のようなものです。WHERE
と=
SET @sql = CONCAT('SELECT * FROM Users WHERE ', _field, ' = ' ,_value);
. 所属していません StackOverflow