欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

case when 多条件查询

程序员文章站 2024-03-12 20:23:08
...

给客户做列表新增的时候,有个需求:根据广告类型从不同的表查询数据,保存到数据库。代码如下所示:

<div class="form-group" id="adType">
    <label>类型:</label>
    <select id='itemType' name="itemType">
        <option value="">请选择</option>
        <option value="1">资讯</option>
        <option value="2">商品</option>
        <option value="3">店铺</option>
        <option value="4">网页</option>
    </select>
</div>

资讯 (带搜索的下拉框) 1
Information 从information表中取ID和title del_flag为0的

/pet/web/information/information-web!getInfoSelectData

商品(搜索的下拉框) 2
goods 从goods表中取ID和name del_flag为0的

/pet/web/goods/goods-web!getGoodsSelectData

店铺(搜索的下拉框) 3
store 从store表中取ID和name audit_Type为1的(已审核)

/pet/web/store/store-web!getStoreSelectData

网页(输入链接地址)4 手动输入

综上所述,需要根据itemType的值从不同的数据库获取item_id的值。
下面是查询的语句,通过case when在MySQL中查询

(case 
  when (item_type = '1') then 
  (select  i.title from information i where i.id = item_id) 
  when (item_type = '2') then
  (select  g.name from goods g where g.id = item_id) 
  when (item_type = '3') then
  (select s.name from store s where s.id = item_id) 
  WHEN (item_type = '4') THEN 
  item_id 
  end
  ) as goodsName,

大功告成!第一次使用case when。

相关标签: case when