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分之间的所有学生数据,可能会写下以下查询语句:
然而,这个查询语句实际上只会选择分数小于等于100的所有学生数据。如果我们想要选择分数在90到100之间的所有学生数据,可以使用以下查询语句代替:
需要注意的是,这些查询语句中的“>=”和“<=”符号是包含边界值的。
阅读更多:MySQL 教程
总结
使用MySQL的“between”子句时,需要小心边界值不包含的问题。如果想要完全包含边界值,应当使用“>=”和“<=”符号代替“between”。