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

响应式网站开发钟山县住房和城乡建设局网站

响应式网站开发,钟山县住房和城乡建设局网站,热点事件舆情分析,北京建设工程造价信息在 MySQL 中使用 NOT IN 进行查询时无法查出 NULL 值,这与 SQL 中 NULL 值的比较规则有关。下面详细解释原因及解决方案。 原因分析 在 SQL 里,NULL 代表未知的值,它与任何值(包括另一个 NULL 值)进行比较的结果都是…

在 MySQL 中使用 NOT IN 进行查询时无法查出 NULL 值,这与 SQL 中 NULL 值的比较规则有关。下面详细解释原因及解决方案。

原因分析

在 SQL 里,NULL 代表未知的值,它与任何值(包括另一个 NULL 值)进行比较的结果都是 UNKNOWN,而非 TRUE 或 FALSENOT IN 操作本质上是一系列的不等于比较。

例如,有如下查询:

SELECT * FROM table_name WHERE column_name NOT IN (value1, value2, NULL);

这个查询等价于:

SELECT * FROM table_name WHERE (column_name != value1) AND (column_name != value2) AND (column_name != NULL);

由于 column_name != NULL 的结果是 UNKNOWN,而 WHERE 子句只会返回条件结果为 TRUE 的行,所以包含 NULL 的比较会使整个条件不满足,从而无法查询出 NULL 值。 

示例说明

假设有一个 students 表,结构和数据如下:

CREATE TABLE `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `score` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

INSERT INTO `students`(`id`, `name`, `score`) VALUES (1, 'Alice', 80);

INSERT INTO `students`(`id`, `name`, `score`) VALUES (2, 'Bob', NULL);
INSERT INTO `students`(`id`, `name`, `score`) VALUES (3, 'Charlie', 90);

当执行以下 NOT IN 查询时:

SELECT * FROM students WHERE score NOT IN (80, NULL);

因为 score != NULL 的结果是 UNKNOWN,所以该查询不会返回 score 为 NULL 的行,也不会返回 score 为 80 的行,最终没有符合条件的结果。 

解决方案

1. 过滤掉 NULL 值

如果 NOT IN 列表中的 NULL 是不必要的,可以在使用前将其过滤掉。

SELECT * FROM students WHERE score NOT IN (80);

 

2. 使用 IS NULL 结合 NOT IN

如果 NOT IN 列表中可能存在 NULL 值,并且你想同时处理 NULL 值的情况,可以使用 IS NULL 来明确处理。

SELECT * FROM students WHERE  score NOT IN (80) OR score IS NULL;

3. 使用 LEFT JOIN 和 IS NULL

另一种方法是使用 LEFT JOIN 和 IS NULL 来模拟 NOT IN 的效果,同时处理 NULL 值。

SELECT s.* 
FROM students s
LEFT JOIN (SELECT 80 AS score) filter ON s.score = filter.score
WHERE filter.score IS NULL; 

 

4. 使用 EXISTS 来模拟 NOT IN 的效果

SELECT stu.* FROM students stu where not EXISTS(select * from students stu1 where stu1.score ='80' and stu.id = stu1.id)

 


文章转载自:

http://9e48FPjm.sLmbg.cn
http://IKmlzkDA.sLmbg.cn
http://09zHXPOp.sLmbg.cn
http://O0uqfZzZ.sLmbg.cn
http://jWQGmpU3.sLmbg.cn
http://IwIcLKKa.sLmbg.cn
http://ov8rPA1j.sLmbg.cn
http://8msND0UZ.sLmbg.cn
http://RiMggPpH.sLmbg.cn
http://UteFpcWx.sLmbg.cn
http://pMP1vjZs.sLmbg.cn
http://zt1QXF2z.sLmbg.cn
http://ASoNWIau.sLmbg.cn
http://j5jVxTRj.sLmbg.cn
http://iCdlVvNr.sLmbg.cn
http://fmYyqrcq.sLmbg.cn
http://wdgHYRGx.sLmbg.cn
http://uU11DJ81.sLmbg.cn
http://0FycQi6N.sLmbg.cn
http://bYMILYym.sLmbg.cn
http://nv0R1KPM.sLmbg.cn
http://dRzcEGEb.sLmbg.cn
http://noL44CdQ.sLmbg.cn
http://dtHYAdXg.sLmbg.cn
http://GpzY8Q3b.sLmbg.cn
http://mnHQNIpJ.sLmbg.cn
http://xpbYgLWM.sLmbg.cn
http://BECjg507.sLmbg.cn
http://dzQrF9ab.sLmbg.cn
http://fDd7vf82.sLmbg.cn
http://www.dtcms.com/wzjs/778973.html

相关文章:

  • 哈尔滨市营商环境建设监督局网站李守洪
  • 学校部门网站建设方案书兴义住房和城乡建设局网站
  • 自己建设房源网站自己做网站编程
  • 武威网站制作公司服务电话代理网页游戏需要什么条件啊
  • 网站建设 实训意见和建议如何查询网站点击率
  • 用dw做的网站怎样弄上网上设计网页的工作叫什么
  • 青浦建设机械网站做网站导流
  • 做棋牌网站的步骤wordpress imgedit
  • 怎么做劳务公司网站网站备案名称几个字
  • 佛山网站搜索引擎优化网易163企业邮箱注册
  • 网站源码下载有什么用西安seo高手
  • 音乐网站建设方案科技部部长
  • 网站搭建流程图华为官网手机商城app
  • 自己做网站切入地图北京网络运维公司
  • 分析企业营销型网站建设的可能性wordpress文章生成二维码
  • 黑龙江省建设安全监督网站wordpress 展示插件 汉化
  • 住房建设部官方网站专家注册wordpress title调用
  • 做暧昧网站seo优化厂家
  • 建设英文网站公司哪家好做网站需要多少钱平邑
  • illustrator 学习网站网站开发哈尔滨网站开发公司
  • 网站首页收录做网站后台怎么弄
  • 长沙网站模板建设如何修改网站备案号
  • 做网站利润网站优化公司推荐
  • 网站排名易下拉技巧给菠菜网站做外包
  • 房地产手机网站模板聊城网站推广动态
  • 深圳 三人 网站建设阿里云服务器可以做下载类网站吗
  • 东莞 网站建设多少钱网站开发收费表
  • 贵州网站设计公司wordpress发布模块支持5.x
  • 福建省城乡建设信息网站佛山企业网站seo
  • 北京网站开发一般多少钱crm软件有哪些