当前位置: 首页 > news >正文

DBAPI的SQL实现模糊查询的3种方案

DBAPI的SQL实现模糊查询的3种方案

LIKE 查询

SQL 中的 LIKE 查询可以实现模糊查询,比如查询名字中包含“张”的记录。

select * from student where name like '%张%'

在 API 中获取参数 name,并将其传入 SQL 语句中,有以下 3 种方法。

方案一:使用原生 SQL 字符串拼接

MySQL

select * from student where name like CONCAT('%', #{name}, '%')

这里使用了 MySQL 的 CONCAT 函数,将百分号 % 与参数 name 进行拼接,实现模糊查询。

Oracle

select * from student where name like '%' || #{name} || '%'

在 Oracle 中,使用双竖线 || 进行字符串拼接。

PostgreSQL

select * from student where name like '%' || #{name} || '%'

PostgreSQL 中也可以使用双竖线 || 进行字符串拼接。

SQL Server

select * from student where name like '%' + #{name} + '%'

在 SQL Server 中,使用加号 + 进行字符串拼接。

方案二:使用动态 SQL 的 bind 标签

DBAPI支持类似mybatis的动态SQL标签语法,通过 bind 标签,将参数 name 拼接模糊查询的通配符%,并生成新的变量 pattern

完整SQL示例如下:

<bind name="pattern" value="'%' + name + '%'" />
select * from student where name like #{pattern}

方案三:使用参数处理插件

  1. 访问插件市场,下载字符串拼接插件,上传到 DBAPI 的 extlib 目录或者 lib 目录下,重启 DBAPI 服务。

  1. 全局插件-参数处理 中选择 字符串拼接插件

    插件参数填写 {"fields":["name"]}

    使用此插件后,系统会自动给 name 参数值的首尾拼接上%字符。

  1. SQL 中的like查询可以直接使用参数 #{name},不用拼接通配符。
select * from student where name like #{name}

http://www.dtcms.com/a/303398.html

相关文章:

  • [论文阅读] 人工智能 | 机器学习工作流的“救星”:数据虚拟化服务如何解决数据管理难题?
  • 数据结构面经
  • 《中国棒球》cba球队有哪些球队·棒球1号位
  • MySQL 查询重复数据的方式总结
  • 历史版本vscode的下载地址
  • 从黑客松出发,AI + Web3 项目怎么打磨成产品?
  • vue2中实现leader-line-vue连线文章对应字符
  • 事务实现的底层原理
  • SwinTransformer改进(14):集成MLCA注意力机制的Swin Transformer模型
  • 机器学习基础-numpy
  • 【JavaScript】const 定义的对象禁止修改内部属性
  • USRP X410 X440 5G及未来通信技术的非地面网络(NTN)
  • Windows10镜像下载
  • 策略路由—PBR
  • laravel chunkById导出数据乱序问题
  • 软件工程:阿里巴巴Java编程手册
  • CCCS作为主要起草人参与《信息技术 智能语音交互系统 第3部分:智能客服》国家标准修订
  • 阿里云 【免费试用】MCP 赋能可视化 OLAP 智能体应用
  • 『 C++ 入门到放弃 』- 哈希表
  • 微积分 | dx / dy 不是比率吗?
  • 《C++继承详解:从入门到理解公有、私有与保护继承》
  • ffmpeg-7.1.1 下载安装 windows 版,MP4 转 m3u8 切片,遇到报错 Unrecognized option ‘vbsf‘的解决办法
  • Linux:理解操作系统
  • 数据结构(动态数组)
  • PyTorch中flatten()函数详解以及与view()和 reshape()的对比和实战代码示例
  • DevOps时代的知识治理革命:Wiki如何成为研发效能的新引擎
  • GPT Agent与Comet AI Aent浏览器对比横评
  • Anaconda创建环境报错:CondaHTTPEFTOT: HTTP 403 FORBIDDEN for url
  • 力扣 之 最小覆盖子串(变长滑动窗口,越短越好)
  • 推客系统全链路架构设计与高并发实践:从CPS分佣到社交裂变