Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL选择Time Between返回比查询早的行的位置_Mysql - Fatal编程技术网

MYSQL选择Time Between返回比查询早的行的位置

MYSQL选择Time Between返回比查询早的行的位置,mysql,Mysql,我有一个mysql数据库,其中有一个名为data的表 mysql> describe data; +-------+---------------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------------+---

我有一个mysql数据库,其中有一个名为data的表

mysql> describe data;
+-------+---------------------+------+-----+-------------------+----------------+
| Field | Type                | Null | Key | Default           | Extra          |
+-------+---------------------+------+-----+-------------------+----------------+
| idx   | int(11)             | NO   | PRI | NULL              | auto_increment |
| ts    | timestamp           | NO   |     | CURRENT_TIMESTAMP |                |
| id    | tinyint(3) unsigned | NO   |     | NULL              |                |
| value | decimal(10,2)       | YES  |     | NULL              |                |
+-------+---------------------+------+-----+-------------------+----------------+
当我尝试选择一个特定的日期范围(例如今天)时,查询返回超出日期范围的数据

mysql> SELECT * FROM data WHERE ts BETWEEN '2016-11-27 00:11:00' AND '2016-11-29 00:11:00' AND id LIKE '0' OR id LIKE '1' ORDER BY ts ASC LIMIT 10;
+-------+---------------------+----+-------+
| idx   | ts                  | id | value |
+-------+---------------------+----+-------+
| 14117 | 2016-11-12 15:24:16 |  1 |  0.00 |
| 20144 | 2016-11-16 20:03:50 |  1 | 56.00 |
| 20147 | 2016-11-16 20:04:10 |  1 | 52.00 |
| 20150 | 2016-11-16 20:05:10 |  1 | 52.00 |
| 20153 | 2016-11-16 20:06:11 |  1 | 52.00 |
| 20156 | 2016-11-16 20:07:11 |  1 | 52.00 |
| 20159 | 2016-11-16 20:08:17 |  1 | 52.00 |
| 20162 | 2016-11-16 20:09:18 |  1 | 52.00 |
| 20165 | 2016-11-16 20:10:21 |  1 | 52.00 |
| 20168 | 2016-11-16 20:11:27 |  1 | 52.00 |
+-------+---------------------+----+-------+

我对MYSQL非常陌生,所以希望这是一个容易解决的问题,但我一直未能找到解决方案(不是因为缺乏尝试)。

问题在于
。您可以使用括号,也可以只在中使用

SELECT *
FROM data
WHERE ts BETWEEN '2016-11-27 00:11:00' AND '2016-11-29 00:11:00' AND
      id IN (0, 1) 
ORDER BY ts ASC
LIMIT 10;

问题在于
。您可以使用括号,也可以只在
中使用

SELECT *
FROM data
WHERE ts BETWEEN '2016-11-27 00:11:00' AND '2016-11-29 00:11:00' AND
      id IN (0, 1) 
ORDER BY ts ASC
LIMIT 10;

的优先级高于
。例如,表达式
a和b或c
相当于
(a和b)或c
。使用括号指定操作顺序,即
a和(b或c)
的优先级高于
。例如,表达式
a和b或c
相当于
(a和b)或c
。使用参数指定操作顺序,即
a和(b或c)