[英]MYSQL Select Into Variable not Storing result in Variable in Stored Procedure.
[英]Storing a field in a variable in stored procedure
DELIMITER $$
DROP PROCEDURE IF EXISTS `ecview_1_10_siruseri`.`test` $$
CREATE DEFINER=`super`@`%` PROCEDURE `test`(In MeterThreadName varchar(30))
BEGIN
Declare MeterThreadId int;
select last_processed_time,meterthreadid=meter_thread_id from meter_thread where name =MeterThreadName;
select ems_device_name, meter_parameter_type_map_id from ems_device e
join meter_parameter_type_map mp on e.meter_id = mp.meter_id and mp.meter_thread_id = meterThreadID;
END $$
DELIMITER ;
我试图将字段存储在一个变量meterthreadid = meter_thread_id中 ,然后在另一个查询中使用它,但是我所得到的只是meter_thread_id的空值。
让我知道该程序是否在任何地方出错?
谢谢
=
只是检查是否相等。 赋值运算符是:=
。 虽然你最好这样写
SELECT 'whatever' INTO variable_name FROM table;
从我的头上不确定,赋值运算符是否仅限于用户定义的变量(以@
开头的变量)。
您还应该记住的是,该变量将保存选择的最后一行的值,而不是每一行的值。 您的过程总的来说是……嗯,程序员将其称为undefined behaviour
。
添加一个ORDER BY
子句(最好使用LIMIT
)或确保您的WHERE
子句将结果限制为一行。
总而言之,我想知道您的程序实际上有什么用处。 您也可以只在一个SELECT
语句中完成所有操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.