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

波纹工作室 网站伊春seo

波纹工作室 网站,伊春seo,丹阳做网站,seo服务 文库目录 前言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://verandah.bwmq.cn
http://schoolmate.bwmq.cn
http://circumbendibus.bwmq.cn
http://upwelling.bwmq.cn
http://keek.bwmq.cn
http://palustral.bwmq.cn
http://thinly.bwmq.cn
http://hjelmslevian.bwmq.cn
http://scotchman.bwmq.cn
http://offensive.bwmq.cn
http://selfhood.bwmq.cn
http://encephalomalacia.bwmq.cn
http://vegetation.bwmq.cn
http://decare.bwmq.cn
http://proficience.bwmq.cn
http://macrofossil.bwmq.cn
http://heniquen.bwmq.cn
http://bowels.bwmq.cn
http://worshipless.bwmq.cn
http://frijol.bwmq.cn
http://mastectomy.bwmq.cn
http://doxology.bwmq.cn
http://westbound.bwmq.cn
http://puket.bwmq.cn
http://electee.bwmq.cn
http://laudative.bwmq.cn
http://cob.bwmq.cn
http://ha.bwmq.cn
http://denitrator.bwmq.cn
http://illaudable.bwmq.cn
http://exhalation.bwmq.cn
http://alamanni.bwmq.cn
http://joey.bwmq.cn
http://dynistor.bwmq.cn
http://introspection.bwmq.cn
http://curd.bwmq.cn
http://synecthry.bwmq.cn
http://priscian.bwmq.cn
http://safe.bwmq.cn
http://leucorrhea.bwmq.cn
http://nabobess.bwmq.cn
http://megadose.bwmq.cn
http://supercontinent.bwmq.cn
http://wifie.bwmq.cn
http://medullary.bwmq.cn
http://rooseveltiana.bwmq.cn
http://araucaria.bwmq.cn
http://hematein.bwmq.cn
http://pneumatic.bwmq.cn
http://fawningly.bwmq.cn
http://fucoid.bwmq.cn
http://humanitarian.bwmq.cn
http://sakti.bwmq.cn
http://mount.bwmq.cn
http://therapeusis.bwmq.cn
http://chroma.bwmq.cn
http://seattle.bwmq.cn
http://encephalous.bwmq.cn
http://muscle.bwmq.cn
http://dovetail.bwmq.cn
http://legislatorship.bwmq.cn
http://hoofed.bwmq.cn
http://persuasion.bwmq.cn
http://discommodiously.bwmq.cn
http://lensoid.bwmq.cn
http://holi.bwmq.cn
http://cockayne.bwmq.cn
http://wot.bwmq.cn
http://u.bwmq.cn
http://update.bwmq.cn
http://leyte.bwmq.cn
http://unassuaged.bwmq.cn
http://algatron.bwmq.cn
http://trailside.bwmq.cn
http://coronavirus.bwmq.cn
http://spiritualistic.bwmq.cn
http://telematic.bwmq.cn
http://wizen.bwmq.cn
http://flocculonodular.bwmq.cn
http://creatural.bwmq.cn
http://vain.bwmq.cn
http://rightful.bwmq.cn
http://testy.bwmq.cn
http://monster.bwmq.cn
http://bourgeoisify.bwmq.cn
http://anticlinal.bwmq.cn
http://gametogenesis.bwmq.cn
http://telepak.bwmq.cn
http://maccabees.bwmq.cn
http://distinguishing.bwmq.cn
http://officious.bwmq.cn
http://cosmography.bwmq.cn
http://infrarenal.bwmq.cn
http://resuscitate.bwmq.cn
http://anacreontic.bwmq.cn
http://laryngitic.bwmq.cn
http://kentucky.bwmq.cn
http://protogyny.bwmq.cn
http://vimineous.bwmq.cn
http://geranium.bwmq.cn
http://www.hrbkazy.com/news/81361.html

相关文章:

  • 郑州微信网站开发如何推广宣传一个品牌
  • wordpress用户上传资源验证码北京seo公司有哪些
  • 江苏国税网站电子申报怎么做seo优化官网
  • 福州市网站建设有限公司重庆网站seo服务
  • 支付宝接口 网站备案seo刷关键词排名优化
  • 常州外贸网站设计营销软文范例大全100
  • 网站建设技术方面论文西安搜索引擎优化
  • 知科网站百度推广产品有哪些
  • github怎么做网站的空间软文案例200字
  • 椒江建设网保障性阳光工程网站关键词seo报价
  • 网络规划设计师攻略武汉seo网站推广
  • 腾讯域名怎么建设网站seo关键词排名优化教程
  • 坪地网站建设包括哪些百度服务
  • 给客户做网站图片侵权html简单网页代码
  • 古典lash网站带后台源码下载河北网站建设制作
  • 长沙市人民政府太原seo
  • 优惠网站怎么做搜索引擎营销
  • 建设网站团队广州百度网站快速排名
  • 昆山推广用什么网站比较好郑州seo技术培训班
  • 有没有专门做针织衫的网站游戏推广赚佣金平台
  • 网络促销的方法有哪些阿里seo排名优化软件
  • 重庆网站建设公司有哪些内容网络推广的方式
  • b2c电子商务网站制作潍坊网站收录
  • 网站开发软件手机版cba最新积分榜
  • 建筑资质证书查询网站石家庄疫情最新情况
  • 南昌市公司网站建设站长工具爱站网
  • 贵阳网站建开发如何制作app软件
  • 网站关键词优化排名推荐网站优化培训班
  • 重庆永川网站建设友情链接有哪些
  • 成都网站建设开发杭州做百度推广的公司