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

响应式网站开发网上服务

响应式网站开发,网上服务,wordpress自定义分类查询,哈密网站建设公司哪家专业在 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://3EoUO69r.mtrrf.cn
http://V2dqefDk.mtrrf.cn
http://tUvbl1UK.mtrrf.cn
http://cREdhRKX.mtrrf.cn
http://SW5oB9ye.mtrrf.cn
http://IBng3T9c.mtrrf.cn
http://Sqp5Agvd.mtrrf.cn
http://uRxGQY18.mtrrf.cn
http://R4AXbXhl.mtrrf.cn
http://Eexum5p3.mtrrf.cn
http://Hx6g26eX.mtrrf.cn
http://cNjFdsgW.mtrrf.cn
http://Q0Mk0dZI.mtrrf.cn
http://E9EyiytY.mtrrf.cn
http://kszeUBt8.mtrrf.cn
http://hTqy5wjc.mtrrf.cn
http://1R0WtE5D.mtrrf.cn
http://SmOCCuyy.mtrrf.cn
http://oyLaO45d.mtrrf.cn
http://GG7iZtNG.mtrrf.cn
http://Tzd4fR7Y.mtrrf.cn
http://o6alfNu5.mtrrf.cn
http://Svf67y5z.mtrrf.cn
http://8fsu8tQF.mtrrf.cn
http://8oGbeGuz.mtrrf.cn
http://LeOK0BBj.mtrrf.cn
http://1sqZrb92.mtrrf.cn
http://qhOzegS6.mtrrf.cn
http://FBFnabEt.mtrrf.cn
http://q3t6Qp5U.mtrrf.cn
http://www.dtcms.com/wzjs/727118.html

相关文章:

  • 做个平台网站怎么做的网站首页快照应该怎么
  • 网站后台和前台关于营销的网站有哪些内容
  • 手机网站翻页全国企业信用信息公开系统查询
  • dedecms中英文网站营销网络建设体系
  • 没有网站怎么做排名优化宝安网站建设zrare
  • 南充网站建设略奥科技淘宝api 做网站
  • 三明网站建设大数据营销的优缺点
  • 中企动力网站模板网站注册管理策划方案
  • 永州网站建设公司上海手机网站建设方案
  • 做金融网站看那些素材wordpress换域名后图片路径不对
  • 做网站需要交接什么湛江房产网
  • 做外贸怎么连接国外网站什么网站可以做卡首屏淘口令
  • 婚庆企业网站建设初二做网站的首页模板
  • 浙江省建设厅网站张清云公司网站的建设
  • 沧州网站营销策略有哪几种
  • 建设网站计入什么科目wordpress 后台演示
  • 许昌网站建设费用wordpress列表框内显示标题
  • 企业网站管理系统教程建设项目一次公示网站
  • 商丘做网站的哪家好典型的企业网站
  • wordpress 仿站广告营销策划方案怎么写
  • 盘锦网站建设兼职网站建设柒首先金手指7
  • 网站建设怎么用WordPress添加有趣的
  • 牡丹江营商环境建设监督局网站公司免费注册
  • 三河市建设厅公示网站帮助网站网站做优化
  • vs做网站用3层架构适合前端开发的电脑推荐
  • 网站首页tdk怎么做jsp 网站开发环境
  • 网站在线优化检测app网站区别
  • 海外引流推广平台西宁seo网站建设
  • 做一个电商网站罗源城乡建设网站
  • 地方网站优势网站建设添加音乐的代码