| 您的当前位置:首页 --> MYSQL教程 --> MySQL的WHERE语句中BETWEEN与IN的使用教程 |
| MYSQL教程 MySQL的WHERE语句中BETWEEN与IN的使用教程 |
| 浏览次数:1286 关键词 ( ) |
| 查看使用该CPU的产品 查看CPU天梯 |
| CPU型号:MySQL的WHERE语句中BETWEEN与IN的使用教程 |
| 主频:Ghz |
| 睿频:Ghz |
| 核心数:个 |
| 不支持超核心 |
| 制作工艺: |
| 插槽类型: |
| 功耗:0W |
| L3缓存:0MB |
| 支持最大内存: 0GB |
| CPU详细参数 |
|
MySQL BETWEEN 用法 WHERE column BETWEEN value1 AND value2 WHERE column NOT BETWEEN value1 AND value2 通常 value1 应该小于 value2。当 BETWEEN 前面加上 NOT 运算符时,表示与 BETWEEN 相反的意思,即选取这个范围之外的值。 SELECT * FROM user WHERE uid BETWEEN 2 AND 5 返回查询结果如下:
除了数值类型外,BETWEEN 也支持字符串范围,如下选择出所有 username 介于 a 至 j 之间的用户(并包括单字母k/K): // 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 '2008-08-08' AND '2009-01-01' // DATETIME 格式,查询 2008-08-08 20:00:00 到 2009-01-01 零点之前的数据 SELECT * FROM table WHERE column_time BETWEEN '2008-08-08 20:00:00' AND '2008-12-31 23:59:59' 但对于查询到当前时间的数据,建议使用 >= 运算符: // DATETIME 格式,查询 2008-08-08 20:00:00 到当前时刻的数据 SELECT * FROM table WHERE column_time >= '2008-08-08 20:00:00' 可见,同样的需求,不同的字段类型,写法可能就不一样。从效率上来讲,int 时间戳格式效率最优。 expr BETWEEN min AND max 当 expr 表达式的值大于或等于 min 且小于或等于 max 时, BETWEEN 的返回值为 1 ,否则返回 0 。利用这个功能,可以判断一个表达式或值否则在某个区间: // 返回 0 SELECT 1 BETWEEN 2 AND 3 // 返回 1 SELECT 'b' BETWEEN 'a' AND 'c' // 判断日期范围 SELECT 20080808 BETWEEN 20080101 AND 20090101 BETWEEN 与 <、<=、>=、> 等运算符在某些情况下有着类似的功能,但 BETWEEN 运算级别更高且效率上更甚一筹。当然由于 BETWEEN 存在边界值的问题而不够灵活,因此不同的情况,采用何种运算符,需要具体对待。 MySQL IN 用法 WHERE column IN (value1,value2,...) WHERE column NOT IN (value1,value2,...) 当 IN 前面加上 NOT 运算符时,表示与 IN 相反的意思,即不在这些列表项内选择。 SELECT * FROM user WHERE uid IN (2,3,5) 返回查询结果如下:
IN 子查询 SELECT uid FROM user WHERE status=0 然后将查询结果作为 IN 的列表项以实现最终的查询结果,注意在子查询中返回的结果必须是一个字段列表项。 SELECT * FROM user WHERE uid IN(1,2,'3','c') 一个 IN 只能对一个字段进行范围比对,如果要指定更多字段,可以使用 AND 或 OR 逻辑运算符: SELECT * FROM user WHERE uid IN (2,3,5) // 等效为: SELECT * FROM user WHERE (uid=2 OR aid=3 OR aid=5) 一般认为,如果是对索引字段进行操作,使用 OR 效率高于 IN,但对于列表项不确定的时候(如需要子查询得到结果),就必须使用 IN 运算符。另外,对于子查询表数据小于主查询的时候,也是适用 IN 运算符的。 |
| 下一个产品 SQL计算timestamp的差值的方法 上一个产品 MySQL中LIKE子句相关使用的学习教程 |