gpt4 book ai didi

mysql - 将字段存储在存储过程的变量中

转载 作者:行者123 更新时间:2023-11-29 22:29:42 24 4
gpt4 key购买 nike

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;

我从头到尾不确定赋值运算符是否仅限于用户定义的变量(以 @ 开头的变量)。

您还应该记住的是,该变量将保存 select 获取的最后一行的值,而不是每一行的值。总而言之,您的过程相当......好吧,程序员将其称为未定义行为
添加 ORDER BY 子句(最好带有 LIMIT)或确保您的 WHERE 子句将结果限制为一行。

总而言之,我想知道您的程序实际上有什么用处。您也可以在一个 SELECT 语句中完成这一切。

关于mysql - 将字段存储在存储过程的变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29916606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com