我正在MySQL中编写存储过程。以下是我写的代码:
SET @qry = 'SELECT id into @wid FROM work_profile where candidate_id = 1223 limit 1';
PREPARE statement FROM @qry;
EXECUTE statement;
但是,执行后@wid
为空。
SELECT id FROM work_profile where candidate_id = 1223 limit 1
返回值1443。
答案 0 :(得分:3)
以下适用于我:
USE test;
DELIMITER $$
CREATE PROCEDURE GETNID()
BEGIN
SET @query = 'SELECT 100 INTO @nid';
PREPARE statement1 FROM @query;
EXECUTE statement1;
END$$
DELIMITER ;
并致电程序:
CALL GETNUMBER();
SELECT @nid;
但是,这似乎在MySQL查询浏览器中不起作用。我不得不求助于使用MySQL命令行客户端。我怀疑查询浏览器会在每个语句后清除会话。
有关更多EXECUTE示例,请参阅MySQL手册:
答案 1 :(得分:0)
查询可能只返回一行以供此语法使用。指定返回一行的WHERE
子句,或添加LIMIT 1
答案 2 :(得分:0)
试试这个
set @qry := 'test';
execute statement using @qry
答案 3 :(得分:0)
从查询中删除INTO @wid并添加LIMIT 1.查询将返回包含所需值的单行。