可以使用IN子句来代替相结合的“大于等于和小于等于”的条件。
要了解BETWEEN 子句考虑的EMPLOYEE_TBL表有以下记录:
mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | John | 2007-01-24 | 250 | | 2 | Ram | 2007-05-27 | 220 | | 3 | Jack | 2007-05-06 | 170 | | 3 | Jack | 2007-04-06 | 100 | | 4 | Jill | 2007-04-06 | 220 | | 5 | Zara | 2007-06-06 | 300 | | 5 | Zara | 2007-02-06 | 350 | +------+------+------------+--------------------+ 7 rows in set (0.00 sec)
现在,假设根据上表想获取记录条件daily_typing_pages超过170,等于和小于300。这可以使用如下条件>=和<=
mysql>SELECT * FROM employee_tbl ->WHERE daily_typing_pages >= 170 AND ->daily_typing_pages <= 300; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | John | 2007-01-24 | 250 | | 2 | Ram | 2007-05-27 | 220 | | 3 | Jack | 2007-05-06 | 170 | | 4 | Jill | 2007-04-06 | 220 | | 5 | Zara | 2007-06-06 | 300 | +------+------+------------+--------------------+ 5 rows in set (0.03 sec)
同样可以实现使用BETWEEN子句如下:
mysql> SELECT * FROM employee_tbl -> WHERE daily_typing_pages BETWEEN 170 AND 300; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | John | 2007-01-24 | 250 | | 2 | Ram | 2007-05-27 | 220 | | 3 | Jack | 2007-05-06 | 170 | | 4 | Jill | 2007-04-06 | 220 | | 5 | Zara | 2007-06-06 | 300 | +------+------+------------+--------------------+ 5 rows in set (0.03 sec)
主要内容:Oracle BETWEEN运算符简介,Oracle BETWEEN示例在本教程中将学习如何使用Oracle 运算符来选择值在一个范围内的行数据。 Oracle BETWEEN运算符简介 运算符允许指定要测试的范围。当使用运算符为SELECT语句返回的行形成搜索条件时,只返回其值在指定范围内的行。 以下说明运算符的语法: 在上面的语法中, low 和high - 和指定要测试的范围的下限值和上限值。和值可以是文字或表达式。 expression - 是和定义的范围内测
问题内容: 如果我运行带有子句的查询,它似乎排除了结束值。 例如: 从‘2011-01-01’到‘2011-01-30’的所有结果;跳过“ 2011-01-31” 所在的记录。谁能解释这个查询的行为方式,以及如何修改它以包含“ 2011-01-31” 所在的记录?(由于用户选择了结束日期,因此未在结束日期前加上1。) 问题答案: 该字段可能具有时间成分。 截断它:
问题内容: 使用BETWEEN子句或使用<= AND> =比较之间在性能上有区别吗? 即这两个查询: …和 在此示例中,year列是带有索引的VARCHAR2(4)。 问题答案: 这两个示例查询之间没有性能差异,因为这只是表示 包含 范围比较的一种简便方法。Oracle解析条件时,它将自动扩展为单独的比较子句: 前任。 …将自动变为:
问题内容: 考虑以下两个表: 表A中的每条记录都精确映射到表B中的1条记录。这意味着表B没有重叠的时间段。表A中的许多记录可以映射到表B中的同一记录。 我需要一个返回所有A.id,B.id对的查询。就像是: 我正在使用MySQL,但无法优化此查询。表A中有约980条记录,表B中有130.000条记录,这是永远的事。我知道必须执行980个查询,但是在功能强大的计算机上花费超过15分钟的时间却很奇怪。
本文向大家介绍MySQL中replace into语句的用法详解,包括了MySQL中replace into语句的用法详解的使用技巧和注意事项,需要的朋友参考一下 在向表中插入数据的时候,经常遇到这样的情况: 1、首先判断数据是否存在; 2、如果不存在,则插入; 3、如果存在,则更新。 在 SQL Server 中可以这样写: 在MySQL 中也可以先select,判断是否存在,存在则 upd
本文向大家介绍mysql update语句的用法详解,包括了mysql update语句的用法详解的使用技巧和注意事项,需要的朋友参考一下 首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDE