mysql如何进行范围查询_mysql between and用法

张开发
2026/4/17 10:49:34 15 分钟阅读

分享文章

mysql如何进行范围查询_mysql between and用法
MySQL BETWEEN AND 是闭区间查询等价于 AND datetime字段用BETWEEN需手动补全时分秒否则右边界默认为00:00:00导致数据遗漏推荐左闭右开写法。MySQL BETWEEN AND 本质就是闭区间查询它不是“模糊匹配”而是严格等价于 取值1 AND 边界值一定包含在内。比如 codeage BETWEEN 24 AND 25 会查出 age 24 和 age 25 的所有记录这点和直觉一致但容易被误以为“中间值才有效”。数值类型INT、DECIMAL用起来最安全语义清晰字符串类型也能用但依赖字符集排序规则如 name BETWEEN A AND M实际效果可能因 collation 而异不推荐用于业务关键字段NOT BETWEEN 是完整否定等价于 取值2不是“排除中间”那么简单datetime 字段用 BETWEEN 必须手动补全时分秒这是线上最容易翻车的点对 DATETIME 或 TIMESTAMP 字段直接写 BETWEEN 2024-10-29 AND 2024-10-30MySQL 会自动补成 2024-10-29 00:00:00 到 2024-10-30 00:00:00结果漏掉 10 月 30 日全天的数据。正确做法是显式写出右边界上限BETWEEN 2024-10-29 00:00:00 AND 2024-10-30 23:59:59更健壮的写法是用左闭右开create_time 2024-10-29 AND create_time 避免秒级精度问题也利于索引使用如果字段是 DATE 类型无时间部分则 BETWEEN 2024-10-29 AND 2024-10-30 是安全的等价于当天整日BETWEEN 和手写 AND 性能没区别但可读性更强优化器会把两者重写为完全相同的执行计划只要字段有索引范围扫描就能生效。但可读性差异明显——尤其当条件嵌套或带函数时。 腾讯小微 基于微信AI智能对话系统打造的智能语音助手解决方案

更多文章