【发布时间】:2014-07-31 11:02:45
【问题描述】:
我正在尝试定义一个接受 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 参数作为字符串提供。如果我像这样运行它,我会在'=myEmail'附近得到一个Mysql 1064('userEmail','myEmail'的参数)。谢谢!
【问题讨论】:
-
你准备了两次。你执行的是哪一个?
-
你说得对,我做了一个编辑,这是另一个测试查询
标签: mysql statements procedures