首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql中select case中的case

mysql中select case中的case
EN

Stack Overflow用户
提问于 2012-02-11 08:45:25
回答 2查看 33K关注 0票数 12

我厌倦了尝试连接到MSSQL,所以我切换到mysql。进展很慢。这是我目前的难题: mssql:

代码语言:javascript
复制
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方法:

代码语言:javascript
复制
select select case n when 0 then 1 when 1 then 2 end into var

?怎么样

代码语言:javascript
复制
set var = select case n when [...] end
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-11 11:01:03

这将指导您使用Inline IF and CASE statements in MySQL

代码片段:

代码语言:javascript
复制
SELECT CASE num_heads
           WHEN 0 THEN 'Zombie'
           WHEN 1 THEN 'Human'
           ELSE 'Alien'
       END AS race
FROM user

代码语言:javascript
复制
mysql> SET @val := CASE num_heads
                       WHEN 0 THEN 'Zombie'
                       WHEN 1 THEN 'Human'
                       ELSE 'Alien'
                   END AS race;

mysql> SELECT @val;
票数 31
EN

Stack Overflow用户

发布于 2012-02-11 08:52:25

你的意思是

代码语言:javascript
复制
SET @var := CASE n WHEN [...] END;

(http://dev.mysql.com/doc/refman/5.6/en/user-variables.html)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9236770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档