如何从mysql准备好的语句中选择返回值?

时间:2011-11-08 13:39:37

标签: mysql database

我正在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。

4 个答案:

答案 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.查询将返回包含所需值的单行。