(付费)MySQL WHERE 条件查询,重点搞懂 % 通配符,MyBatis 中的 \# 和 $ 的区别,MySQL 会如何处理连续的 % 通配符

您所在的位置:网站首页 查询和查阅的区别 (付费)MySQL WHERE 条件查询,重点搞懂 % 通配符,MyBatis 中的 \# 和 $ 的区别,MySQL 会如何处理连续的 % 通配符

(付费)MySQL WHERE 条件查询,重点搞懂 % 通配符,MyBatis 中的 \# 和 $ 的区别,MySQL 会如何处理连续的 % 通配符

2024-05-16 08:43| 来源: 网络整理| 查看: 265

# MySQL WHERE 条件查询

在上一篇open in new window中,我们学习了简单的 SELECT 查询,但没有带上查询条件。要知道,真实的业务场景中,数量会非常大,有些甚至会有几百万、几千万条数据,如果不带上查询条件,一次性把全部数据查出来是不太现实的。

所以,我们通常要求在执行 SELECT 查询时,都要带上查询条件。那这一节,我们就来学习一些简单的 WHERE 条件查询。

我们仍然以技术派open in new window的文章表 article 为例,比如说我们要查找标题为“聊聊分库分表”的文章,可以这么写:

SELECT * FROM article WHERE title = '聊聊分库分表';

这其中的 WHERE title = '聊聊分库分表' 就是查询条件,title 是字段名,'聊聊分库分表' 是字段值。

# 比较查询操作符

除了上面提到的 = 操作符,MySQL 还提供了很多其他的比较查询操作符,常用的有以下几种:

操作符示例描述=user_id = 1等于!= 或 user_id != 1 或 user_id 1不等于>user_id > 1大于=user_id >= 1大于等于= 1000 AND user_id = 和一个 and a.title like concat('%', #{searchParams.title}, '%')

如果 searchParams.title 不为空,就会拼接 % 通配符,实现模糊查询。

其中的 concat 方法是 MySQL 的字符串拼接函数。

# 是 MyBatis 中参数占位符的标记,用于预处理语句(PreparedStatement)中,以防止 SQL 注入攻击。当使用#{}来包裹一个参数时,MyBatis 会在执行 SQL 之前将该参数的值安全地填充到 SQL 语句中。

注意,这是一个考点。在面试中,可能会被问到 # 和 $ 的区别。

$ 也是 MyBatis 中参数占位符的标记,用于直接拼接 SQL 语句,不会进行预处理。当使用${}来包裹一个参数时,MyBatis 会直接将该参数的值拼接到 SQL 语句中。

#{} 和 ${} 的区别在于,#{} 是预处理,会对参数进行安全处理,而 ${} 是直接拼接,不会对参数进行处理。

# MyBatis 中的 # 和 $

我们这里稍微拓展一丢丢,假如 mapper.xml 文件中的 SQL 语句是这样的:

select * from user where name = #{name};

那么它将被解析为:

select * from user where name = ?;

一个 #{} 会被解析为一个参数占位符 ?。

而如果 xml 中的 SQL 语句是这样的:

select * from user where name = '${name}';

。。。。。

# 付费内容

以下内容为二哥编程星球open in new window的付费内容(点击链接可以查看详细介绍和加入方式)。

加入二哥的编程星球后,你不仅可以阅读完整版的《二哥的 MySQL 进阶之路》内容,还可以阅读更多付费专栏,比如说《技术派付费专栏open in new window》、《二哥的 LeetCode 刷题笔记open in new window》、《编程喵实战项目笔记》、《Java 面试指南open in new window》等等。

除此之外,还可以为你提供:

专属的一对一提问交流,如何准备面试,如何制定学习计划,如何选择 offer,以及职场规划,都能得到我 1v1 的指导和建议;强大的嘉宾阵容,有微信的、字节的、小米的、百度的、国企的、外企的、阿里的等等各方大佬。如果你的问题二哥解决不了,总有一个大佬能够帮你解决。为你精挑细选了一些可以写到简历上,可以提高编程功底的优质实战项目,比如说动态线程池 hippo4j、手写数据库 MYDB、Spring Boot 的前后端分离项目技术派等等,无论你是缺少项目经验的学生党,还是有一定经验的工作党,这些项目都能帮助你完成技术上的蜕变和提升。星球会定期整理和分享优质的学习资料,包括 PDF&视频教程&学习资料等等。为你提供容易被忽视但又十分重要的简历指导服务,二哥会事无巨细地帮你指出简历上的问题,打造一份投了就有声音的优质简历。为你创造一个沉浸式的学习环境,二哥的编程星球自上线以来,氛围非常好,有一种高中初中上晚自习,大学进图书馆的感觉,每天都会有很多球友积极打卡,分享自己一天的学习成果。

学习的路上最缺的就是清晰的学习路线、优质的学习资料和良好的学习氛围,二哥的编程星球恰好就能给你提供这样的服务。来星球的球友几乎都斩获不错的成绩,有美团、华为等大厂,也有 16k 的双非本、甚至 23k 的大专社招,我随便发几个球友报喜的截图给大家展示下。

《Java 面试指南open in new window》是二哥编程星球的open in new window的一个付费专栏,和《Java 进阶之路》上的内容可以形成很好的互补,截止到目前,已经更新 48 万字,可以说是满满的干货和诚意。

一共分为 6 大板块,对面试、职场、技术、学习都会帮助特别大。

面试准备篇(25+篇),手把手教你如何准备面试。职场修炼篇(11+篇),手摸手教你如何在职场中如鱼得水。学习路线篇(13+篇),手勾手教你如何快速学习一门技术栈。技术提升篇(33+篇),手拉手教你如何成为团队不可或缺的技术攻坚小能手。面经分享篇(23+篇),手牵手教你如何在面试中知彼知己,百战不殆。场景设计篇(22+篇),手握手教你如何在面试中脱颖而出。# 01、面试准备篇

所谓临阵磨枪,不快也光。更何况提前做好充足的准备呢?这 25+篇内容会系统地引导你该如何做好面试准备。涉及到的主题有:简历、源码、LeetCode、项目经验、开源项目、高并发、证书、和 HR 对线、国企名单、公司投递名单、银行、谈薪等等面试常见问题。

如何准备面试如何准备面试如何写好简历如何写好简历秋招投递名单秋招投递名单# 02、职场修炼篇

如何平滑度过试用期?如何平滑度过 35 岁程序员危机?如何在繁重的工作中持续成长?如何做副业?如何赚零花钱?如何达到 30 万+年薪等等,都是大家迫切关心的问题,这 11+篇内容会一一为你揭晓答案。

# 03、技术提升篇

编程能力、技术功底,是我们程序员安身立命之本,是我们求职/工作的最核心的武器。

# 04、面经分享篇

知彼知己,方能百战不殆,我们必须得站在前辈的肩膀上,才能走得更远更快。他们在面试中遇到过哪些经典的问题,我们能不能提前演练一下,对临场发挥有着至关重要的作用。

# 05、场景设计题篇

有些面试官不喜欢问八股文,反而更喜欢结合项目问一些非常经典的场景题,这种场景题没有标准的答案,但却很能考察一名求职者的逻辑思维能力。

# 星球限时优惠

一年前,星球的定价还是 99 元一年,第一批优惠券的额度是 30 元,等于说 69 元的低价就可以加入,再扣除掉星球手续费,几乎就是纯粹做公益。

随着时间的推移,星球积累的干货/资源越来越多,我花在星球上的时间也越来越多,星球的知识图谱open in new window里沉淀的问题,你可以戳这个链接open in new window去感受一下。有学习计划啊、有学生党秋招&春招&offer选择&考研&实习&专升本&培训班的问题啊、有工作党方向选择&转行&求职&职业规划的问题啊,还有大大小小的技术细节,我都竭尽全力去帮助球友,并且得到了球友的认可和尊重。

目前星球已经 4200+ 人了,所以星球也涨价到了 149 元,后续会讲星球的价格调整为 159 元/年,所以想加入的小伙伴一定要趁早。

你可以微信扫码或者长按自动识别领取 30 元优惠券(仅有 100 张),119/年 加入,满 5000 人会涨价至 159 元,所以想要加入的话请趁早。

对了,加入星球后记得花 10 分钟时间看一下星球的两个置顶贴,你会发现物超所值!

成功没有一蹴而就,没有一飞冲天,但只要你能够一步一个脚印,就能取得你心满意足的好结果,请给自己一个机会!

最后,把二哥的座右铭送给你:没有什么使我停留——除了目的,纵然岸旁有玫瑰、有绿荫、有宁静的港湾,我是不系之舟。

共勉 ⛽️。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3