MYSQL, установить две переменные в хранимой процедуре с одним оператором выбора - PullRequest
8 голосов
/ 03 марта 2012

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

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

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

tia

Ответы [ 4 ]

17 голосов
/ 03 марта 2012

вы должны попробовать

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

1 голос
/ 03 марта 2012

Простите, если это не работает в 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;
1 голос
/ 03 марта 2012
select vFN :=fname, vLN:=lname from sometable where id = 1
1 голос
/ 03 марта 2012

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

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