MYSQL, установить две переменные в хранимой процедуре с помощью одного оператора select

Итак, я хотел бы, чтобы это было что-то вроде или имело эффект:

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

Очевидно, что я мог бы сделать 2 выбора, но это кажется очень неэффективным.

TIA

4 ответа

попробуйте

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 для документации.


Простите меня, если это не работает в 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;


Имеют два набора утверждений. Установите один с помощью оператора select, а затем скопируйте значение в первом ко второму.

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


select vFN :=fname, vLN:=lname from sometable where id = 1

licensed under cc by-sa 3.0 with attribution.