MySQL “between”子句边界值不包含的问题

MySQL “between”子句边界值不包含的问题

MySQL的“between”子句常用于多种比较操作,比如从相对于两个值之间的范围内选择数据。然而,在MySQL中,“between”子句不如其他数据库系统中那样完全包含边界值。这个问题在某些情况下可能会导致不必要的困惑和错误,因此在使用“between”时应当特别小心。

在MySQL中,如果使用“between”定义一个值的范围,那么最终选择的数据会不包含边界值。例如,如果我们要选择范围在1和10之间的数据,那么写成“WHERE column BETWEEN 1 AND 10”将只选择小于10的所有值。只有“WHERE column >= 1 AND column <= 10”将会选择1到10之间的所有值。

让我们看一下一个具体的例子。假设我们有一个包含学生考试成绩的表格,其中分数在0到100之间。如果我们想选择90到100分之间的所有学生数据,可能会写下以下查询语句:

SELECT * FROM students WHERE score BETWEEN 90 AND 100;
Mysql

然而,这个查询语句实际上只会选择分数小于等于100的所有学生数据。如果我们想要选择分数在90到100之间的所有学生数据,可以使用以下查询语句代替:

SELECT * FROM students WHERE score >= 90 AND score <= 100;
Mysql

需要注意的是,这些查询语句中的“>=”和“<=”符号是包含边界值的。

阅读更多:MySQL 教程

总结

使用MySQL的“between”子句时,需要小心边界值不包含的问题。如果想要完全包含边界值,应当使用“>=”和“<=”符号代替“between”。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册