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

合肥网站建设平台钓鱼网站怎么做防护教程

合肥网站建设平台,钓鱼网站怎么做防护教程,怎样用php做网站,重庆制作网站的公司排名目录 前言1. 探讨2. 基本知识3. 总结 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 基本的Java知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全&#x…

目录

  • 前言
  • 1. 探讨
  • 2. 基本知识
  • 3. 总结

前言

🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF

基本的Java知识推荐阅读:

  1. java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)
  2. 【Java项目】实战CRUD的功能整理(持续更新)

使用MyBatis-Plus或直接操作SQL时,处理空值(NULL)和空字符串(“”)经常引发混淆和问题

通过实战的踩坑方式,将详细分析为何 yard_location IS NULL 和 yard_location = NULL 会返回不同结果,以及在 MyBatis-Plus 中如何正确使用 isNull 方法来查询空值

1. 探讨

什么是 NULL?

NULL 表示数据库中没有值,是一种特殊的标记。它与空字符串(“”)或数字 0 是不同的

如何查询 NULL?

查询字段是否为 NULL 应使用 IS NULL 或 IS NOT NULL
yard_location = NULL 是无效的,任何值与 NULL 比较(如 =、!=)都返回 UNKNOWN,即不匹配任何结果

那么结合Sql代码以及Mybatisplus中的语句进行探讨

SQL 查询:为何结果不同?

正确查询方式,返回 yard_location 为 NULL 的记录:SELECT * FROM dangerous_goods_log WHERE yard_location IS NULL;

错误查询方式,永远返回空结果,因为 = NULL 是不合法的比较:SELECT * FROM dangerous_goods_log WHERE yard_location = NULL;

接下来就是代码的重点了:

MyBatis-Plus 查询:为何 .eq(“yard_location”, “”) 返回空数据?

MyBatis-Plus 中,eq(“yard_location”, “”) 生成的 SQL 类似于:

SELECT * FROM `dangerous_goods_log` WHERE yard_location = '';

这会查询 yard_location 为 空字符串 的记录,而不是 NULL
如果数据库中 yard_location 为 NULL 而非 “”,此查询将不匹配任何结果

如果使用 .isNull("yard_location"),则生成的 SQL 为:

SELECT * FROM `dangerous_goods_log` WHERE yard_location IS NULL;

这是正确查询 NULL 的方式,因此返回正确结果

2. 基本知识

MyBatis-Plus 提供了 isNull 和 isNotNull 方法,用于处理 NULL 值的查询条件

isNull:用于查询字段值为 NULL 的数据

.isNull("字段名")

isNotNull:用于查询字段值非 NULL 的数据

.isNotNull("字段名")

基本的查询示例如下:

  1. 查询字段值为 NULL 的记录
List<GoodsLogDO> goodsLogs = goodsLogMapper.selectList(new QueryWrapper<GoodsLogDO>().isNull("yard_location") // 查询 yard_location 为 NULL 的记录.in("dangerous_goods_status", 0L, 1L) // 状态为 0 或 1
);

生成的 SQL:

SELECT * FROM `dangerous_goods_log` 
WHERE yard_location IS NULL AND dangerous_goods_status IN (0, 1);
  1. 查询字段值非 NULL 的记录
List<GoodsLogDO> goodsLogs = goodsLogMapper.selectList(new QueryWrapper<GoodsLogDO>().isNotNull("yard_location") // 查询 yard_location 非 NULL 的记录.eq("dangerous_goods_status", 0L) // 状态为 0
);

生成的 SQL:

SELECT * FROM `dangerous_goods_log` 
WHERE yard_location IS NOT NULL AND dangerous_goods_status = 0;

实战中的处理方式如下:

在这里插入图片描述

  1. 查询字段为空字符串或 NULL 的记录
List<GoodsLogDO> goodsLogs = goodsLogMapper.selectList(new QueryWrapper<GoodsLogDO>().and(wrapper -> wrapper.isNull("yard_location") // yard_location 为 NULL.or().eq("yard_location", "") // 或为空字符串).eq("dangerous_goods_status", 1L); // 状态为 1
);

生成的 SQL:

SELECT * FROM `dangerous_goods_log` 
WHERE (yard_location IS NULL OR yard_location = '') AND dangerous_goods_status = 1;

3. 总结

上述知识点,主要是明白一个知识点

  • 区分 NULL 和空字符串
    在数据库中,NULL 和 “” 是不同的。如果需要同时查询两种情况,必须显式使用 IS NULL 和 = 条件

  • MyBatis-Plus 默认行为
    MyBatis-Plus 不会自动将空字符串(“”)视为 NULL

  • SQL 默认比较规则
    避免使用 = NULL 或 != NULL,改用 IS NULL 或 IS NOT NULL

  • 空值赋值处理
    插入数据时,如果字段需要为空,应显式插入 NULL 而非 “”,以确保查询逻辑一致

http://www.yayakq.cn/news/786541/

相关文章:

  • 山东省建设厅网站 - 百度网站控制面板中设置目录权限
  • 网站建设代理怎么做wordpress主题 手机版
  • 房子信息查询网站入口网络科技公司网站源码
  • 网站备案归哪里管大连网站优化技术
  • 河南网站建设运营域名注册公司wordpress无法显示主页内容
  • 单页营销分享网站html5 企业 网站
  • 大华伟业网站建设百度seo收录软件
  • 英文注册查询网站炫酷手机网站模板
  • 摄影师网站模板如何建网站服务器
  • 网页网站开发公司创建网站首页时通常取文件名为
  • 合肥外贸网站建设公司电子商务网站建设 项目规划书
  • 广西桂林建设局网站番禺做网站的公司
  • 网站地图 怎么做免费做的英文网站
  • 文山知名网站建设rest api wordpress
  • 枣庄市建设局网站天津网络网站制作
  • 音乐网站开发的项目背景对新网站做seo大概需要多久
  • 丽水网站建设江西软件app开发公司
  • 网络营销咨询网站源码流量推广平台有哪些
  • 网站建设方案书内容设计logo网站免费横屏纯色
  • 根据 我司申请 网站建设做视频网站怎么对接云盘
  • 做网站图片的大小上海进博会2022
  • 有个能写文章做任务的网站免费手机网站模板下载
  • 数据图表展示网站百度网络科技有限公司
  • 做平面还有什么素材网站做移动端活动页面参考网站
  • 会外语和做网站威海优化公司立找2火星
  • 青岛做个网站多少钱wordpress theme珠宝
  • 有关做服装的网站吗wordpress 目录安全
  • 做公众号app 网站 app德州金航网站建设
  • 自己做app建网站张家港做网站多少钱
  • 网站建设关键词布局网站访问量来源