сохранить результат запроса UNION в локальной переменной в хранимой процедуре MYSQL - PullRequest
1 голос
/ 10 февраля 2012

В моей хранимой процедуре MySQL я хочу сохранить результат приведенного ниже запроса в локальные переменные.

MySQL SP

BEGIN
Declare temp_ID bigint;
Declare temp_teamName Text;
(select ID,team1 from tbl_tournament_matches where leveID = 1 and tournamentID = 91 and matchType = 'L')
UNION
(select ID,team1 from tbl_tournament_matches where leveID = 2 and tournamentID = 91 and looserTeam is not null)
ORDER BY RAND() LIMIT 0,1;
select temp_ID, temp_teamName;
END;

Как передать результат запроса в локальную переменную?примечание: выше SP вернет только 1 строку.

1 Ответ

3 голосов
/ 10 февраля 2012

Этого можно добиться, не сохраняя значение в переменной.

SELECT * FROM(

select ID,team1 from tbl_tournament_matches where leveID = 1 and tournamentID = 91 and matchType = 'L'

UNION 

select ID,team1 from tbl_tournament_matches where leveID = 2 and tournamentID = 91 and looserTeam is not null
) ORDER BY RAND() LIMIT 0,1

Но если вы хотите сохранить значение для последующего использования, вы можете использовать ключевое слово INTO:

 SELECT id, data INTO @x, @y FROM test.t1 LIMIT 1;

http://dev.mysql.com/doc/refman/5.0/en/select-into.html

...