mysql out返回结果_在MySQL的存储过程的OUT参数中返回结果集
我在
MySQL的過(guò)程,它有兩個(gè)IN參數(shù):USERLOGIN(VARCHAR)和的userPassword(VARCHAR),以及兩個(gè)OUT參數(shù):用戶(hù)ID(INT)和userRights(VARCHAR).
該過(guò)程的工作原理如下:檢查具有給定登錄名和密碼的用戶(hù)是否在數(shù)據(jù)庫(kù)中,如果是,則返回其ID,userRights和設(shè)置.權(quán)限可以連接成一個(gè)字符串,但我想避免連接并隨后解析websettings,因?yàn)閿?shù)據(jù)的結(jié)構(gòu)更復(fù)雜.
現(xiàn)在,我的過(guò)程只返回userID和userRights,如果成功,我運(yùn)行另一個(gè)select語(yǔ)句來(lái)獲取設(shè)置.
目前程序:
DELIMITER $$
CREATE PROCEDURE `proc_login_user`(IN UserName VARCHAR(45), IN Pwd VARCHAR(250), OUT Uid INT, OUT Rights VARCHAR(100))
BEGIN
DECLARE Uname VARCHAR(45);
DECLARE Pass VARCHAR(250);
DECLARE UserId INT;
SET @Uname := UserName;
SET @Pass := Pwd;
SET @UserId = (SELECT ID FROM `users` WHERE Login = @Uname AND Password = @Pass);
SET Uid = @UserId;
SET Rights = /* some SELECT GROUP_CONCAT statement to create string */
END;
我希望在procedure中添加一個(gè)輸出參數(shù):userSettings,它應(yīng)該是一個(gè)結(jié)果集.
像這樣的東西:
DELIMITER $$
CREATE PROCEDURE `proc_login_user`(IN UserName VARCHAR(45), IN Pwd VARCHAR(250), OUT Uid INT, OUT Rights VARCHAR(100), OUT Settings)
BEGIN
DECLARE Uname VARCHAR(45);
DECLARE Pass VARCHAR(250);
DECLARE UserId INT;
SET @Uname := UserName;
SET @Pass := Pwd;
SET @UserId = (SELECT ID FROM `users` WHERE Login = @Uname AND Password = @Pass);
SET Uid = @UserId;
SET Rights = /* some SELECT GROUP_CONCAT statement to create string */
SET Settings = SELECT * FROM `settings` WHERE UserID = @UserId;
END;
任何幫助,將不勝感激.
謝謝,
茲比涅克
總結(jié)
以上是生活随笔為你收集整理的mysql out返回结果_在MySQL的存储过程的OUT参数中返回结果集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql lbs 计算距离_使用mys
- 下一篇: mysql的从节点能否执行事务_MySQ