网站推广.NET

网站推广.NET

MySQL BETWEEN 用法

来源:互联网

MySQL BETWEEN 语法

between 运算符用于 where 表达式中,选取介于两个值之间的数据范围。between 同 and 一起搭配使用,语法如下:

WHERE column BETWEEN value1 AND value2WHERE column NOT BETWEEN value1 AND value2

通常 value1 应该小于 value2。当 BETWEEN 前面加上 NOT 运算符时,表示与 BETWEEN 相反的意思,即选取这个范围之外的值。

BETWEEN 实例

选取 uid 在 2 到 5 之间的用户数据:

select * FROM user WHERE uid BETWEEN 2 AND 5

返回查询结果如下:

除了数值类型外,BETWEEN 也支持字符串范围,如下选择出所有 username 介于 a 至 j 之间的用户(并包括单字母k/K):

select * FROM user WHERE username BETWEEN 'a' AND 'k'

字符范围也支持汉字,但通常来说没什么意义。

MySQL BETWEEN 边界

虽然几乎所有的数据库都支持 BETWEEN ... AND 运算符,但不同的数据库对 BETWEEN ... AND 处理方式是有差异的。在 MySQL 中,BETWEEN 包含了 value1 和 value2 边界值,如上面选取 uid 在 2 到 5 之间的用户数据例子。

而有的数据库则不包含 value1 和 value2 边界值(类似于 > and <),也有数据库包含 value1 而不包含 value2(类似于 >= and <)。所以在使用 BETWEEN ... AND 的时候,请检查你的数据库是如何处理 BETWEEN 边界值的。

MySQL BETWEEN 时间日期

BETWEEN AND 常用于检索时间或日期段内的内容,下面是一些常见的 BETWEEN 时间日期例子:

// int 时间戳格式,查询 2008-08-08 20:00:00 到 2009-01-01 零点之前的数据select * FROM table WHERE column_time BETWEEN 1218196800 AND 1230739199// DATE 格式,查询 2008-08-08 到 2009-01-01 零点之前的数据select * FROM table WHERE column_time BETWEEN &#39;2008-08-08&#39; AND &#39;2009-01-01&#39;// DATETIME 格式,查询 2008-08-08 20:00:00 到 2009-01-01 零点之前的数据select * FROM table WHERE column_time BETWEEN &#39;2008-08-08 20:00:00&#39; AND &#39;2008-12-31 23:59:59&#39;

但对于查询到当前时间的数据,建议使用 >= 运算符:

// DATETIME 格式,查询 2008-08-08 20:00:00 到当前时刻的数据select * FROM table WHERE column_time >= &#39;2008-08-08 20:00:00&#39;

可见,同样的需求,不同的字段类型,写法可能就不一样。从效率上来讲,int 时间戳格式效率最优。

标签: mysql between

抱歉,评论功能暂时关闭!