mysql out返回结果_在MySQL的存储过程的OUT参数中返回结果集
我在
MySQL的過程,它有兩個IN參數(shù):USERLOGIN(VARCHAR)和的userPassword(VARCHAR),以及兩個OUT參數(shù):用戶ID(INT)和userRights(VARCHAR).
該過程的工作原理如下:檢查具有給定登錄名和密碼的用戶是否在數(shù)據(jù)庫中,如果是,則返回其ID,userRights和設(shè)置.權(quán)限可以連接成一個字符串,但我想避免連接并隨后解析websettings,因為數(shù)據(jù)的結(jié)構(gòu)更復(fù)雜.
現(xiàn)在,我的過程只返回userID和userRights,如果成功,我運行另一個select語句來獲取設(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中添加一個輸出參數(shù):userSettings,它應(yīng)該是一個結(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参数中返回结果集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql lbs 计算距离_使用mys
- 下一篇: mysql的从节点能否执行事务_MySQ