Случай в случае выбора в mysql
Мне становится больно пытаться подключиться к MSSQL, поэтому я перехожу к mysql.
Это медленный прогресс. Вот мой нынешний колотушка:
MSSQL:
create function W(m varchar(255)) returns int begin
declare @e int
set @e = (select COUNT(N) from P where N = m)
declare @t int
set @t = dbo.C(m)
return case @t
when 0 then -1
when 1 then
case @e when 0 then -1 else 1 end
when 2 then
case @e when 1 then -1 when 2 then 0 when 3 then 0 when 4 then 1 end
when 3 then
case @e when 1 then -1 when 2 then 1 end
when 4 then
case @e when 1 then -1 when 2 then 0 when 3 then 1 end
end
end
Я хотел бы переключить это на mysql. Есть ли способ mysql для:
select select case n when 0 then 1 when 1 then 2 end into var
?
Как насчет
set var = select case n when [...] end
?
Ответы
Ответ 1
это поможет вам использовать инструкции Inline IF и CASE в MySQL
сниппет:
SELECT CASE num_heads
WHEN 0 THEN 'Zombie'
WHEN 1 THEN 'Human'
ELSE 'Alien'
END AS race
FROM user
или
mysql> SET @val := CASE num_heads
WHEN 0 THEN 'Zombie'
WHEN 1 THEN 'Human'
ELSE 'Alien'
END AS race;
mysql> SELECT @val;
Ответ 2
Вы имеете в виду
SET @var := CASE n WHEN [...] END;
?
(http://dev.mysql.com/doc/refman/5.6/en/user-variables.html)