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 paramを文字列として提供する方法がわからないことです。私がこのように走るならば、私は '= MyEmail'の近くのMySQL 1064(params where'useremail '、' myemail ')を手に入れる。ありがとう!

役に立ちましたか?

解決

下記のコードでは、WHEREの後にスペースがありません。それは以下のようなものです。WHERE=

の後にスペースを与える
SET @sql = CONCAT('SELECT * FROM Users WHERE ', _field, ' = ' ,_value);
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top