sql语句借助case when实现自动拼装where条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句借助case when实现自动拼装where条件相关的知识,希望对你有一定的参考价值。

参考技术A 遇到这样一个场景,一条SQL语句,根据A字段查询,在没有mybatis情况下,如何实现“如果A字段为空,则查询全量,否则根据A字段过滤。

经过摸索,可以借助case when ... else end 在where中实现。

select   *  from http_summary

where

CASE

    when '$api' != '全部' then to_api='$api'

    else to_api=to_api

END

  and trace_date ='$traceDate'

SQL语句,使用case when 实现批量更新数据

SQL语句,使用case when 实现批量更新数据

      update table_name set
            status = case id 
               when 1 then ‘正常‘
               when 2 then ‘禁用‘
               when 3 then ‘过期‘
            end,
            rank = case id
               when 1 then 1
               when 2 then 2
               when 3 then 3
            end
      where id in (1,2,3);
                             

以上是关于sql语句借助case when实现自动拼装where条件的主要内容,如果未能解决你的问题,请参考以下文章

MySQL case when 使用

case when 语句

SQL中的条件判断语句(case when zhen if,ifnull)用法

SQL语句,使用case when 实现批量更新数据

SQL语句,使用case when 实现批量更新数据

case when用法sql