-- 示例代码:创建一个带有索引的表
CREATE TABLE example_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
age INT,
INDEX idx_age (age)
);
-- 插入一些数据
INSERT INTO example_table (name, age) VALUES ('Alice', 25), ('Bob', NULL), ('Charlie', 30);
-- 查询语句1:使用 IS NULL 进行查询
SELECT * FROM example_table WHERE age IS NULL;
-- 查询语句2:使用 = NULL 进行查询(不推荐)
SELECT * FROM example_table WHERE age = NULL;
-- 解释说明:
-- 在 MySQL 中,IS NULL 和 = NULL 是不同的。= NULL 不会被优化器正确处理,因为它在 SQL 中总是返回 NULL(即未知),而不是 TRUE 或 FALSE。
-- 因此,使用 = NULL 会使索引失效,而 IS NULL 可以正常使用索引。
-- 在上面的例子中,第一个查询语句可以利用 idx_age 索引,而第二个查询语句不会利用索引。
-- 验证索引是否生效可以使用 EXPLAIN 命令
EXPLAIN SELECT * FROM example_table WHERE age IS NULL;
EXPLAIN SELECT * FROM example_table WHERE age = NULL;
上一篇:mysql数据库定时备份
下一篇:mysql if 语句
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站