MYSQL,使用单个选择语句在存储过程中设置两个变量

Posted

技术标签:

【中文标题】MYSQL,使用单个选择语句在存储过程中设置两个变量【英文标题】:MYSQL, set two variables in stored proc with single select statement 【发布时间】:2012-03-21 09:12:01 【问题描述】:

所以我希望它是这样的,或者具有以下效果:

declare vFN varchar(20); 
declare vLN varchar(20);
set vFN, vLN = (select fname, lname from sometable where id = 1);

显然,我可以进行 2 次选择,但这似乎非常低效。

tia

【问题讨论】:

【参考方案1】:

如果这在 mysql 中不起作用,请原谅我,因为我已经习惯了 TSQL 语法。但是您应该能够执行以下操作:

declare vFN varchar(20); 
declare vLN varchar(20);
select vFN = fname, vLN = lname from sometable where id = 1;

或者如果您需要使用 mysql 进行选择:

declare vFN varchar(20); 
declare vLN varchar(20);
select fname into vFN, lname into vLN from sometable where id = 1;

【讨论】:

【参考方案2】:

你应该试试

declare vFN varchar(20); 
declare vLN varchar(20);
select fname, lname INTO vFN, vLN from sometable where id = 1;

查看http://dev.mysql.com/doc/refman/5.0/en/select-into.html 获取文档。

【讨论】:

【参考方案3】:
select vFN :=fname, vLN:=lname from sometable where id = 1

【讨论】:

【参考方案4】:

有两个集合语句。使用 select 语句设置一个,然后将第一个中的值复制到第二个。

declare vFN varchar(20); 
declare vLN varchar(20);
set vFN = (select fname, lname from sometable where id = 1);
set vLN = vFN;

【讨论】:

以上是关于MYSQL,使用单个选择语句在存储过程中设置两个变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在存储过程 MySql 中设置默认时区

MySQL存储过程变量定义

在 SELECT 语句中设置变量 - MySQL

如何在mysql,php的单个查询中设置与自动递增ID值相同的任何列值[重复]

如何在mysql中设置唯一索引

MySQL表类型的选择