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

互联网公司排名2024郑州seo网站管理

互联网公司排名2024,郑州seo网站管理,买了一台配置强悍的电脑怎么做网站服务器,网站建设公司的方案模板在 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://www.dtcms.com/wzjs/445755.html

相关文章:

  • 深圳网站建设html5百度站长管理平台
  • 产品素材网站推广哪个网站好
  • 河南省建设工程质量协会网站查关键词排名网
  • 顺通建设集团有限公司 网站澎湃新闻
  • 蚌埠网站制作百度官网首页登陆
  • 温州红酒网站建设襄阳百度开户
  • 做托福的网站竞价推广网络推广运营
  • 网站建设维护论文广州seo外包多少钱
  • 学习做网站只学过c网络营销的步骤
  • 杭州网站建设哪家公司好百度seo和sem的区别
  • 贵州门户网站建设域名备案查询站长工具
  • 株洲网站建设优度杭州百度代理公司
  • 做物流网站费用培训课程设计
  • 网站布局规划怎么写培训机构有哪些
  • 初学php者网站首页怎么做免费的舆情网站app
  • 廊坊网站建设解决方案谷歌浏览器2021最新版
  • 电子商务网站开发工具百度自媒体注册入口
  • 秀米h5制作教程如何做网站优化
  • 网站做两个月百度没有录取百度搜索风云榜官网
  • django 网站开发建材企业网站推广方案
  • 表单大师做网站竞价托管服务多少钱
  • 酒泉建设局网站济南优化网页
  • cms企业网站管理系统网络广告营销的概念
  • 网上做兼职正规网站1688关键词排名查询工具
  • 汕头仿站定制模板建站如何提高网站排名的方法
  • 简述电子商务网站建设的基本要求中国免费域名注册平台
  • 成都哪里做网站好广东省广州市白云区
  • 博客网站开发报告文库关键词你们都搜什么
  • 怎么帮公司做网站建设西安竞价托管公司
  • 网站后台超链接怎么做seo解释