Mysql 将列与其他列一起选择为变量

Mysql 将列与其他列一起选择为变量,mysql,stored-procedures,Mysql,Stored Procedures,在MYSQL存储过程中,我需要选择表列,和将列选择为变量,以便在该过程中进一步使用 DECLARE pUSR_ID BIGINT; DECLARE pPRJ_ID BIGINT; DECLARE pUSR_LAN_ID BIGINT; SELECT USR_ID, USR_Login, USR_Password, USR_Archived, USR_Deleted, USR_ID, USR_PRJ_ID, USR_LAN_ID INTO pUSR_ID, pPRJ_ID, pUSR_LA

在MYSQL存储过程中,我需要选择表列,将列选择为变量,以便在该过程中进一步使用

DECLARE pUSR_ID BIGINT;
DECLARE pPRJ_ID BIGINT;
DECLARE pUSR_LAN_ID BIGINT;

SELECT USR_ID, USR_Login, USR_Password, USR_Archived, USR_Deleted, 
  USR_ID, USR_PRJ_ID, USR_LAN_ID INTO pUSR_ID, pPRJ_ID, pUSR_LAN_ID
FROM tblUsers
WHERE USR_Login = 'foobar';
下面是存储过程的简化版本

DECLARE pUSR_ID BIGINT;
DECLARE pPRJ_ID BIGINT;
DECLARE pUSR_LAN_ID BIGINT;

SELECT USR_ID, USR_Login, USR_Password, USR_Archived, USR_Deleted, 
  USR_ID, USR_PRJ_ID, USR_LAN_ID INTO pUSR_ID, pPRJ_ID, pUSR_LAN_ID
FROM tblUsers
WHERE USR_Login = 'foobar';
当我执行上述存储过程时,我得到以下错误消息,这是有意义的

错误代码:1222。使用的SELECT语句有不同的列数

因此,我将变量放在第一位,其他列放在变量之后。
SELECT USR_ID, USR_PRJ_ID, USR_LAN_ID INTO pUSR_ID, pPRJ_ID, pUSR_LAN_ID,
  USR_ID, USR_Login, USR_Password, USR_FullName, USR_IsProjectAdmin, USR_Archived,
  USR_Deleted
选择USR\u ID、USR\u PRJ\u ID、USR\u LAN\u ID进入pUSR\u ID、pPRJ\u ID、pUSR\u LAN\u ID,
USR_ID、USR_登录、USR_密码、USR_全名、USR_IsProjectAdmin、USR_存档、,
USR_已删除
执行此操作将返回:
错误1327:未声明的变量:USR\u ID
。我明白为什么我会出错


我不明白的是如何在同一语句中选择表列将某些列选择为变量?

要选择为变量,必须使用
select。。。into…
:似乎有人没有正确阅读问题。您的Select/into需要有相同数量的列/变量。@chris您的意思是我需要创建我不使用的变量,为了使列的数量与变量的数量相同?我没有达到您的目标:您是否希望使用一个
SELECT
语句,在该语句中初始化您声明的变量并获得结果,这是其他列?工作得非常好。非常感谢。
/*
DECLARE pUSR_ID BIGINT;
DECLARE pPRJ_ID BIGINT;
DECLARE pUSR_LAN_ID BIGINT;
*/ /*no need to declare*/


SELECT 
@pUSR_ID:=USR_ID, 
USR_Login, 
USR_Password, 
USR_Archived, 
USR_Deleted, 
USR_ID, 
@pPRJ_ID:=USR_PRJ_ID, 
@pUSR_LAN_ID:=USR_LAN_ID 
FROM tblUsers
WHERE USR_Login = 'foobar';