PagePlug多条件查询方案

在这里插入图片描述

正确实现

使用Case When来编写查询条件

SELECT * FROM pc_ticket_tax_cloud
WHERE 1=1
AND (CASE WHEN {{data_table.searchText != ''}} THEN xsddm like '{{data_table.searchText || ""}}%'ELSE 1=1 END
)
AND (CASE WHEN {{doc_code_input.text != ''}} THEN doc_code like '{{doc_code_input.text || ""}}%'ELSE 1=1 END
)
ORDER BY {{data_table.sortOrder.column || 'id'}} {{data_table.sortOrder.order || "DESC"}}
LIMIT {{data_table.pageSize}}
OFFSET {{(data_table.pageNo - 1) * data_table.pageSize}};

如下图:
在这里插入图片描述
当点击查询按钮时:

在这里插入图片描述

错误实现

可能有人会问为什么这么麻烦?不能如下查询么?

SELECT * FROM pc_ticket_tax_cloud
WHERE xsddm like '{{data_table.searchText || ""}}%'
and doc_code like '{{ doc_code_input.text  || ""}}%'
ORDER BY {{data_table.sortOrder.column || 'id'}} {{data_table.sortOrder.order || "DESC"}}
LIMIT {{data_table.pageSize}}
OFFSET {{(data_table.pageNo - 1) * data_table.pageSize}};

不能!因为两个查询条件始终生效,比如不设置搜索条件时,实际的sql是:

SELECT * FROM pc_ticket_tax_cloud
WHERE xsddm like '%'
and doc_code like '%'
ORDER BY {{data_table.sortOrder.column || 'id'}} {{data_table.sortOrder.order || "DESC"}}
LIMIT {{data_table.pageSize}}
OFFSET {{(data_table.pageNo - 1) * data_table.pageSize}};

而doc_code是null的将不会查询到!因为null 不符合 like '%'的条件,但我们想要的是查询所有数据,因此不能这样做。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/763957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言算法】求逆序对数目(C语言+归并排序)

题目描述 Background Raymond Babbitt drives his brother Charlie mad. Recently Raymond counted 246 toothpicks spilled all over the floor in an instant just by glancing at them. And he can even count Poker cards. Charlie would love to be able to do cool thin…

代码随想录Day31

Day 31 贪心算法 Part01 今日任务 455.分发饼干 摆动序列 最大子序和 代码实现 455.分发饼干 //自己想的,虽然看着不让代码随想录给出的解法简洁,但是理论是一样的public int findContentChildren(int[] g, int[] s) {Arrays.sort(g);Arrays.sort(…

Git浅谈配置文件和免密登录

一、文章内容 简述git三种配置ssh免密登录以及遇见的问题git可忽略文件git remote 相关操作 二、Git三种配置 项目配置文件(局部):项目路径/.git/config 文件 git config --local user.name name git config --local user.email 123qq.cc全局配置文(所有用户): …

【Web】记录CISCN 2021 总决赛 ezj4va题目复现——AspectJWeaver

目录 前言 原理分析 step 0 step 1 EXP 前文:【Web】浅聊Java反序列化之AspectJWeaver——任意文件写入-CSDN博客 前言 这就是当年传说中的零解题嘛😭,快做🤮了 有了之前的经验,思路顺挺快的,中间不…

网络基础(一)初识

1、计算机网络背景 1.1、网络发展 1. 独立模式: 计算机之间相互独立; 2. 网络互联: 多台计算机连接在一起,完成数据共享; 3. 局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起; 4. 广域网WAN: 将远隔千里的计算机都连在一起;…

突破编程_C++_STL教程( priority_queue 的基础知识)

1 std::priority_queue 概述 std::priority_queue 是 C 标准库中的一个容器适配器,它提供了一种实现优先队列数据结构的机制。优先队列是一种特殊的队列,其中元素的出队顺序不是基于它们进入队列的顺序,而是基于它们的优先级。优先级最高的元…

【python】python汽车效能数据集—回归建模(源码+数据集)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

yaml 语法和在线解析工具

文章目录 在线解析工具1. 简介2. 语法规则3. 数据类型3.1 数组:3.2对象:3.3 标量3.4 复合结构3.5 锚点3.5.1 单个锚点3.5.6 多个锚点 3.6 引号 参考 在线解析工具 工具1 工具2 1. 简介 Yaml是一种可读性高的数据标记语言,Yaml文件是一种配…

使用VisualStudio集成开发nodejs的addon项目

文章目录 Visual Studio中的nodeJS项目配置Visual Studio中的addon项目配置一般的addon项目手写CPP文件 & VS构建.node文件的本质分析使用VS来创建node文件项目另外一个验证方式Visual Studio中的nodeJS项目配置 在VisualStudio的IDE中,已经可以创建一些基本的nodejs项目…

vscode配置C语言打断点

搞了半天,也不知道为什么,不能打断点,后来就可以了。 1,VSCODE启动要管理员启动。 launch.json文件内容 { "version": "0.2.0", "configurations": [ { "name": "(Windows) Laun…

Python从入门到精通秘籍十五

一、Python之基础地图的使用 当涉及到地图数据和地理信息处理时,Python中最常用的库是Folium,它是一个基于Leaflet.js的Python库,可以轻松创建交互式地图可视化。 首先,你需要安装Folium库。可以通过以下命令使用pip进行安装&am…

45.i++和++i

目录 一.基本概念 二.区别 三.总结 四.视频教程 一.基本概念 i和i两者的作用都是自增加1。单独使用的话,i和i,效果都是一样的,就是ii1。 int main() {int i 0;i; } int main() {int i 0;i; } 最后的结果都是1。 二.区别 如上单独使…

SpringBoot—@ConditionalOnBean与@ConditionalOnClass

一、ConditionalOnBean概念 需求场景 比如下面一种场景,我在实例化People对象的时候,需要注入一个City对象。这个时候问题来了,如果city没有实例化,那么下面就会报空指针或者直接报错。 所以这里需求很简单,就是当前c…

就业班 第二阶段 2401--3.19 day4 主从复制

一、MySQL-Replication(主从复制) 1.1、MySQL Replication 主从复制(也称 AB 复制)允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)…

MySQL面试题--最全面-索引

目录 一、索引 1.MySQL是如何让实现的索引机制? 2.InnoDB索引与MyISAM索引实现的区别是什么? 3.一个表中如果没有创建索引,那么还会创建B树吗? 4.说一下B树索引实现原理(数据结构) 5.聚簇索引与非聚簇…

Handler的post与sendMessage的区别和应用场景

Handler的post与sendMessage的区别和应用场景 区别在于post实现起来比较简单。而sendMessage()则需要自己重写handleMessage()方法。 两者在本质上都没有什么区别。post方法适合单一的场景,实现起来比较方便。sendMessage()适合需要作条件判…

弱电工程包括哪些工程?

​一、弱电工程的分部有哪些? 分为基础、主体、装饰工程、强电、弱电、消防、暖通、给排水工程,桩基、筏板、模板、钢筋、混凝土、砌体、粉刷、地坪等 二、弱电工程系统包括哪些? 弱电系统包括:闭路电视监控系统、防盗报警系统、门禁系统、电子巡更…

[小程序开发] 分包加载

一、介绍 分包加载是一种小程序的优化技术,将小程序不同功能的代码,分别打包成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载,在构建小程序分包项目时,构建会输出一个或多个分包&#xff…

突破编程_C++_C++11新特性(type_traits的复合类型特性以及关系类型特性)

1 type_traits 复合类型特性 1.1 std::is_function std::is_function 是一个模板类&#xff0c;用于检查一个类型是否为函数类型。 定义&#xff1a; template< class T > struct is_function;当 T 为函数类型则为 true&#xff0c;否则为 false。 样例&#xff1…

专业前沿问题问答合集10-2——比特币的加密原理

专业前沿问题问答合集10-2——比特币的加密原理 比特币的加密原理 比特币作为一种加密货币,其安全性和功能性主要基于密码学原理和区块链技术。以下是比特币加密原理的关键组成部分: 1. 非对称加密(公钥和私钥) 比特币使用非对称加密技术来确保交易的安全性。每个比特币…