Details
-
Bug
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
5.5, 10.0, 10.1
-
None
Description
This script:
DROP TABLE IF EXISTS t1;
|
CREATE TABLE t1 (id INT NOT NULL, a VARCHAR(20), KEY(id,a)) ENGINE=MyISAM;
|
INSERT INTO t1 VALUES (1,'01');
|
INSERT INTO t1 VALUES (1,'02');
|
INSERT INTO t1 VALUES (1,'03');
|
INSERT INTO t1 VALUES (1,'04');
|
INSERT INTO t1 VALUES (2,'01');
|
INSERT INTO t1 VALUES (2,'02');
|
INSERT INTO t1 VALUES (2,'03');
|
INSERT INTO t1 VALUES (2,'04');
|
INSERT INTO t1 VALUES (3,'01');
|
INSERT INTO t1 VALUES (3,'02');
|
INSERT INTO t1 VALUES (3,'03');
|
INSERT INTO t1 VALUES (3,'04');
|
INSERT INTO t1 VALUES (4,'01');
|
INSERT INTO t1 VALUES (4,'02');
|
INSERT INTO t1 VALUES (4,'03');
|
INSERT INTO t1 VALUES (4,'04');
|
EXPLAIN SELECT id,MIN(a),MAX(a) FROM t1 WHERE a BETWEEN '04' AND '05' GROUP BY id;
|
returns
+------+-------------+-------+-------+---------------+------+---------+------+------+---------------------------------------+
|
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
|
+------+-------------+-------+-------+---------------+------+---------+------+------+---------------------------------------+
|
| 1 | SIMPLE | t1 | range | NULL | id | 27 | NULL | 9 | Using where; Using index for group-by |
|
+------+-------------+-------+-------+---------------+------+---------+------+------+---------------------------------------+
|
If I used LIKE instead of BETWEEN with the same table:
EXPLAIN SELECT id,MIN(a),MAX(a) FROM t1 WHERE a LIKE '04%' GROUP BY id;
|
group-min-max is not applied:
+------+-------------+-------+-------+---------------+------+---------+------+------+--------------------------+
|
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
|
+------+-------------+-------+-------+---------------+------+---------+------+------+--------------------------+
|
| 1 | SIMPLE | t1 | index | NULL | id | 27 | NULL | 16 | Using where; Using index |
|
+------+-------------+-------+-------+---------------+------+---------+------+------+--------------------------+
|
Group-min-max could safely be applied.