· 8 years ago · Apr 17, 2018, 04:46 AM
1mysql> DROP TABLE IF EXISTS `y_ap_test`;
2Query OK, 0 rows affected (0.00 sec)
3
4mysql> CREATE TABLE `y_ap_test` (
5 -> `a` int(10) UNSIGNED NOT NULL,
6 -> `B` char(1) NOT NULL DEFAULT '',
7 -> `c` int(10) UNSIGNED NOT NULL,
8 -> `d` int(10) UNSIGNED NOT NULL,
9 -> PRIMARY KEY (`a`,`B`,`c`,`d`)
10 -> ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
11Query OK, 0 rows affected (0.00 sec)
12
13mysql> INSERT INTO `y_ap_test` VALUES
14 -> (100,'A',0,0),(100,'A',0,30),
15 -> (100,'A',0,60),(100,'A',0,90),
16 -> (100,'A',0,120),(100,'A',0,150),
17 -> (100,'A',0,180),(100,'A',0,210),
18 -> (100,'A',0,240),(100,'A',0,270),
19 -> (100,'A',0,300),(100,'A',0,330),
20 -> (100,'A',0,360),(100,'A',0,390),
21 -> (100,'A',0,420),(100,'A',0,450);
22Query OK, 16 rows affected (0.00 sec)
23Records: 16 Duplicates: 0 Warnings: 0
24
25mysql> SELECT * FROM y_ap_test USE INDEX (`PRIMARY`) WHERE A = 100 AND B = 'A' AND C=0 AND D >= 149;
26+-----+---+---+-----+
27| a | B | c | d |
28+-----+---+---+-----+
29| 100 | A | 0 | 150 |
30| 100 | A | 0 | 180 |
31| 100 | A | 0 | 210 |
32| 100 | A | 0 | 240 |
33| 100 | A | 0 | 270 |
34| 100 | A | 0 | 300 |
35| 100 | A | 0 | 330 |
36| 100 | A | 0 | 360 |
37| 100 | A | 0 | 390 |
38| 100 | A | 0 | 420 |
39| 100 | A | 0 | 450 |
40+-----+---+---+-----+
4111 rows in set (0.00 sec)
42
43mysql> SELECT * FROM y_ap_test USE INDEX () WHERE A = 100 AND B = 'A' AND C=0 AND D >= 149;
44Empty set (0.00 sec)