跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • MySQL 查询,能否做到当某字段为特定值时,该条件字段不起作用
未分類
27 1 月 2022

MySQL 查询,能否做到当某字段为特定值时,该条件字段不起作用

MySQL 查询,能否做到当某字段为特定值时,该条件字段不起作用

資深大佬 : lixyz 23

标题描述的不太清楚,我举个例子:

数据库 Bill 有如下字段 createTime:创建时间 billName:账单名称 billCategory:账单分类 billAccount:账单账户 等等

然后前端通过下拉菜单会有如下筛选: 开始时间,结束时间,账单分类,账单账户,等等

如果前段对每个条件都设置值的话,后台数据库查询很容易

但假如说 [账单分类] 前台并没有通过下拉菜单进行选择,而是选择了默认,会向后台传递一个 -1 值

这个时候后台的查询语句该怎么写啊

因为条件字段有若干个,如果不选择的话都会返回一个默认特定值,但条件有挺多的,会有若干个组合,所以就想请问,MYSQL 有没有类似的语句,就是当 where 种某个条件等于某个值时,这个条件就不起作用 -_-

大佬有話說 (11)

  • 資深大佬 : eason1874

    我目前想到的方法是先在后台把所有的数据全查出来,然后再根据传递过来的数据筛选,但好像这个方法有点笨

    一直写 android ,完全是赶鸭子上架,求大佬

  • 資深大佬 : ltltfuture

    前端传过来的参数你不要直接用,过滤和判断,把 -1 的过滤掉

  • 資深大佬 : aragakiyuii

    看看我这理解的对不对
    比如你要写
    SELECT createTime, billName, billCategory, billAccount
    FROM Bill
    后面加上
    WHERE
    (billCategory <> -1 or billCategory=“你传入的参数” )
    AND
    后面依次加上其他列…

  • 資深大佬 : thetbw

    代码里把 -1 过滤掉不就行了…

  • 資深大佬 : dream4ever

    这部就是 mybatis 的 if 吗
    <if test=”billCategory!= null and billCategory!=-1″>
    and bill_category = #{billCategory}
    </if>

  • 資深大佬 : onhao

    最原始的方式,就是手动拼装 SQL 语句嘛。

  • 資深大佬 : raptor

    主看来是不想在程序里处理, 直接在 mysql 里咯, 那么我这里有一个办法不知主敢不敢用!
    https://wuhao.pw/archives/268/
    这方法可能争议很大的 , 用函数来实现,自定义一个函数 来处理这个特定值。^_^

  • 資深大佬 : Tenlearn

    SELECT createTime, billName, billCategory, billAccount
    FROM Bill
    WHERE
    (:billCategory = -1 or billCategory=:billCategory)
    然后把输入值传给:billCategory 这个参数即可。

  • 資深大佬 : 2i2Re2PLMaDnghL

    @onhao 敢用,月底就领工资走了,很安详

  • 資深大佬 : gesse

    如果传参可以有序参数化的话
    WHERE ?1<>-1 OR billCategory=?1
    如果不能的话
    WHERE ?<>-1 OR billCategory=? 并且把这个参数传两遍,就会变成 query(sql, a, a, b, b, c, c, d, d) 这样的结构(你也可以再封装一下)
    对于恒 true 或者恒 false 的条件,SQL 会在编译期直接优化掉。

  • 資深大佬 :

    你个人像事情逻辑有点问题

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具