首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql案例问题

Mysql案例问题
EN

Stack Overflow用户
提问于 2016-11-17 18:47:36
回答 2查看 60关注 0票数 0

我通过从表单域获取某些变量来创建一个sql查询。但有些领域是相互重复的。因此,这打破了MySQL的案例结构。举个例子:

代码语言:javascript
复制
(case 
  when `field` IN (1,2) then 'area 1'
  when `field` = 3 then 'area 2'
  when `field` = 4 then 'area 3'
  when `field` IN (1,2,3,4) then 'area 4'
end) as cases

Group by cases

我知道“区域4”永远不会出现在结果中,但有没有办法显示出来呢?

sqlfiddle

EN

回答 2

Stack Overflow用户

发布于 2016-11-17 18:51:55

按优先级对它们进行排序。首先是最匹配的查询,然后是较小的查询。

就像这样:

代码语言:javascript
复制
(case 
  when `field` IN (1,2,3,4) then 'area 4'
  when `field` IN (1,2) then 'area 1'
  when `field` = 3 then 'area 2'
  when `field` = 4 then 'area 3'
end) as cases
票数 0
EN

Stack Overflow用户

发布于 2016-11-17 20:53:27

参考您的SQLfiddle

下面是我能想到的查询

代码语言:javascript
复制
SELECT ROUND(SUM(quantity)/1000) as `quantity`,
ROUND(SUM(value)/1000) as `value`,
(case 
   when istpoz REGEXP '^(7207|7218|7224|7206)' 
   then
    case when istpoz REGEXP '^(7206|7207)' 
         then 'Yarı Mamul (Alaşımsız)'   else 'Yarı Mamul (Tamamı)'  end
    else
    case
      when istpoz REGEXP '^(7224)' then 'Yarı Mamul (Alaşımlı Çelik)' 
      when istpoz REGEXP '^(7218)' then 'Yarı Mamul (Paslanmaz Ç.)' 
    end
end) as istpozz,
`year` FROM 
export as x WHERE 
`year` IN (2016) 
AND `month` IN (1,2,3,4) 
AND `country_id` IN (1) 
AND `istpoz` REGEXP '^(7206|7207|7224|7218)' GROUP BY istpozz,year
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40652832

复制
相关文章

相似问题

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