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

如何提高网站访客数重庆关键词排名首页

如何提高网站访客数,重庆关键词排名首页,wordpress 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/a/581393.html

相关文章:

  • 天猫、飞猪打通了迪士尼会员权益 IP 商业化迈入“全域变现”时代
  • 第八章 惊喜22 批判性思维
  • wordpress主题模板视频网站模板实搜网站建设
  • 第1章 SLAM技术导论
  • 测试之bug篇
  • 万全县城乡建设网站企业网站建设的目的是什么
  • 网站建设资源平台地方门户网站的分类
  • VS + Qt 开发多语言,中英文
  • 游戏开发入门,简单小游戏原理-关于2D渲染的一些小想法
  • Bootstrap4 徽章(Badges)
  • CSE(ChannelSigExplorer)生物电单信道可视化分析平台
  • IntelliJ IDEA 插件开发指南,编写你的第一个IDEA插件
  • 自己搭建一个网站需要多少钱?建站模板网站设计
  • Docker 部署 Oracle Linux 实操全流程
  • 做局域网网站教程php网站后台上传图片有没有推荐到首页的功能
  • Spring Boot 自定义组件深度解析
  • 海外IP如何代理可以提高效率
  • [人工智能-大模型-132]:模型层 - AI模型的演进
  • Python每日一练---第九天:H指数
  • go中es(olivere/elastic/v7)增加日志
  • css之动画
  • 域名费用和网站服务器费用是同样的吗解析软件的网站
  • 【C++】现代C++的新特性constexpr,及其在C++14、C++17、C++20中的进化
  • 求制作网站音乐网站建设规划
  • 免费响应式模板网站网站换空间要重新备案吗
  • 【Rust】时间轮的数据结构于设计模式
  • 解决cryptography库报错【DLL load failed while importing _rust】
  • JASP:一款免费开源的统计软件,SPSS替代产品
  • 【JS Utils】Vue2 自定义计算属性 (兼容 uniapp 和 Vue 2.7 以前版本)
  • React 16