当前位置:首页 » 存储配置 » mysql存储过程查询赋值

mysql存储过程查询赋值

发布时间: 2022-07-11 21:54:52

A. 关于mysql存储过程select into无法赋值诡异的事情,请大神求教,这是怎么回事

方法是没有问题,可以在insert into 前面加一条select userName ; 用于检查是否正常获取到值。

B. Mysql将存储过程执行后的值赋值给变量

Mysql存储过程查询结果赋值到变量的方法

把查询结果赋值到变量,大部分情况下使用游标来完成,但是如果明确知道查询结果只有一行(例如统计记录的数量,某个字段求和等),其实可以使用set或into的方式来实现赋值。示例代码:

drop table if exists test_tbl;
create table test_tbl (name varchar(20), status int(2));
insert into test_tbl values('abc', 1),('edf', 2),('xyz', 3);
drop procere IF EXISTS pro_test_3;
delimiter //
create procere pro_test_3()
begin
DECLARE cnt INT DEFAULT 0;
select count(*) into cnt from test_tbl;
select cnt;
-- 多个列的情况下似乎只能用 into 方式
select max(status), avg(status) into @max, @avg from test_tbl;
select @max, @avg;
end
delimiter ;
call pro_test_3();

C. MYSQL的存储过程count(*)赋值给变量的问题

count(*)可以快速遍历整个数据表,统计出符合条件的总条数X
正确用法是:
select count(*) as a from table where ...
执行之后,该结果中就有一个名为a的变量,其值为X

D. mysql 存储过程怎么赋值

DELIMITER$$
USE`test`$$
DROPPROCEDUREIFEXISTS`p_getAllTablesCount`$$
CREATEDEFINER=`root`@`localhost`PROCEDURE`p_getAllTablesCount`()
BEGIN
DECLAREtableNameVARCHAR(100);
DECLAREtablesnVARCHAR(100);
DECLAREtableCountINT;
DECLAREstopFlagINT;
DECLAREsqlStrVARCHAR(1000);
--注意:请修改数据库名称
DECLAREcursor_nameCURSORFORSELECTTABLE_NAMEFROMinformation_schema.tablesWHEREtable_schema='test';
'02000'SETstopFlag=1;
CREATETABLEIFNOTEXISTStemp_table(table_nameVARCHAR(100),table_countVARCHAR(100));
OPENcursor_name;
REPEAT
FETCHcursor_nameINTOtableName;
SETsqlStr=CONCAT('SELECTCOUNT(1)into@tableCountFROM',tableName);
SELECTsqlStrINTO@sqlStr;
--select@sqlStr;
SELECT@tableCountINTOtableCount;
BEGIN
@sqlStr;
EXECUTEstepInsertIntoTable;
END;
SETsqlStr=CONCAT('insertintotemp_tablevalues(''',CONCAT(tableName),''',''',CONCAT(tableCount),''');');
SELECTsqlStrINTO@sqlStr;
BEGIN
@sqlStr;
EXECUTEstepInsertIntoTable;
END;
UNTILstopFlagENDREPEAT;
CLOSEcursor_name;
SELECTtable_name,table_countFROMtemp_tableORDERBYtable_countDESC;
--PREPAREstepFROM@sql1;
--EXECUTEstep;
DROPTABLEtemp_table;
END$$
DELIMITER;

E. mysql 存储过程 局部变量赋值给where 查询无结果 数据库有值

字段加上表名:

select `fname`,`lname` from `employee` where `employee`.`depart` = tmp;

热点内容
csgo和永劫无间哪个配置要求高 发布:2024-10-08 18:20:47 浏览:48
43数据库 发布:2024-10-08 18:19:20 浏览:816
svn服务器不能访问 发布:2024-10-08 18:18:36 浏览:984
压缩面膜多少钱 发布:2024-10-08 18:18:01 浏览:539
徐州少儿编程培训机构 发布:2024-10-08 17:52:29 浏览:389
c语言常用函数大全 发布:2024-10-08 17:46:33 浏览:410
win10怎么取消启动密码 发布:2024-10-08 17:29:22 浏览:211
c图像算法 发布:2024-10-08 17:02:13 浏览:238
android上传图片php 发布:2024-10-08 16:48:44 浏览:996
阳湖医院的wifi密码是多少 发布:2024-10-08 16:43:31 浏览:763