📄 order_by.result
字号:
1 1 b1 1 1 0 b1 0 select count(*) from t1 where a < 5 and b > 0;count(*)9select * from t1 where a < 5 and b > 0 order by a desc,b desc;a b c2 3 c2 2 b2 2 a2 1 b2 1 a1 3 b1 1 b1 1 b1 1 explain select * from t1 where a between 1 and 3 and b <= 1 order by a desc, b desc;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 8 NULL 10 Using where; Using indexselect * from t1 where a between 1 and 3 and b <= 1 order by a desc, b desc;a b c2 1 b2 1 a1 1 b1 1 b1 1 1 0 b1 0 explain select * from t1 where a between 0 and 1 order by a desc, b desc;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range a a 4 NULL 5 Using where; Using indexselect * from t1 where a between 0 and 1 order by a desc, b desc;a b c1 3 b1 1 b1 1 b1 1 1 0 b1 0 drop table t1;CREATE TABLE t1 (gid int(10) unsigned NOT NULL auto_increment,cid smallint(5) unsigned NOT NULL default '0',PRIMARY KEY (gid),KEY component_id (cid)) ENGINE=MyISAM;INSERT INTO t1 VALUES (103853,108),(103867,108),(103962,108),(104505,108),(104619,108),(104620,108);ALTER TABLE t1 add skr int(10) not null;CREATE TABLE t2 (gid int(10) unsigned NOT NULL default '0',uid smallint(5) unsigned NOT NULL default '1',sid tinyint(3) unsigned NOT NULL default '1',PRIMARY KEY (gid),KEY uid (uid),KEY status_id (sid)) ENGINE=MyISAM;INSERT INTO t2 VALUES (103853,250,5),(103867,27,5),(103962,27,5),(104505,117,5),(104619,75,5),(104620,15,5);CREATE TABLE t3 (uid smallint(6) NOT NULL auto_increment,PRIMARY KEY (uid)) ENGINE=MyISAM;INSERT INTO t3 VALUES (1),(15),(27),(75),(117),(250);ALTER TABLE t3 add skr int(10) not null;select t1.gid, t2.sid, t3.uid from t2, t1, t3 where t2.gid = t1.gid and t2.uid = t3.uid order by t3.uid, t1.gid;gid sid uid104620 5 15103867 5 27103962 5 27104619 5 75104505 5 117103853 5 250select t1.gid, t2.sid, t3.uid from t3, t2, t1 where t2.gid = t1.gid and t2.uid = t3.uid order by t3.uid, t1.gid;gid sid uid104620 5 15103867 5 27103962 5 27104619 5 75104505 5 117103853 5 250EXPLAIN select t1.gid, t2.sid, t3.uid from t3, t2, t1 where t2.gid = t1.gid and t2.uid = t3.uid order by t1.gid, t3.uid;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 6 Using index1 SIMPLE t2 eq_ref PRIMARY,uid PRIMARY 4 test.t1.gid 1 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 2 test.t2.uid 1 Using where; Using indexEXPLAIN SELECT t1.gid, t3.uid from t1, t3 where t1.gid = t3.uid order by t1.gid,t3.skr;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t3 ALL PRIMARY NULL NULL NULL 6 Using temporary; Using filesort1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t3.uid 1 Using where; Using indexEXPLAIN SELECT t1.gid, t2.sid, t3.uid from t2, t1, t3 where t2.gid = t1.gid and t2.uid = t3.uid order by t3.uid, t1.gid;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 6 Using index; Using temporary; Using filesort1 SIMPLE t2 eq_ref PRIMARY,uid PRIMARY 4 test.t1.gid 1 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 2 test.t2.uid 1 Using where; Using indexEXPLAIN SELECT t1.gid, t3.uid from t1, t3 where t1.gid = t3.uid order by t3.skr,t1.gid;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t3 ALL PRIMARY NULL NULL NULL 6 Using temporary; Using filesort1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t3.uid 1 Using where; Using indexEXPLAIN SELECT t1.gid, t3.uid from t1, t3 where t1.skr = t3.uid order by t1.gid,t3.skr;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort1 SIMPLE t3 eq_ref PRIMARY PRIMARY 2 test.t1.skr 1 Using wheredrop table t1,t2,t3;CREATE TABLE t1 (`titre` char(80) NOT NULL default '',`numeropost` mediumint(8) unsigned NOT NULL auto_increment,`date` datetime NOT NULL default '0000-00-00 00:00:00',`auteur` char(35) NOT NULL default '',`icone` tinyint(2) unsigned NOT NULL default '0',`lastauteur` char(35) NOT NULL default '',`nbrep` smallint(6) unsigned NOT NULL default '0',`dest` char(35) NOT NULL default '',`lu` tinyint(1) unsigned NOT NULL default '0',`vue` mediumint(8) unsigned NOT NULL default '0',`ludest` tinyint(1) unsigned NOT NULL default '0',`ouvert` tinyint(1) unsigned NOT NULL default '1',PRIMARY KEY (`numeropost`),KEY `date` (`date`),KEY `dest` (`dest`,`ludest`),KEY `auteur` (`auteur`,`lu`),KEY `auteur_2` (`auteur`,`date`),KEY `dest_2` (`dest`,`date`)) CHECKSUM=1;CREATE TABLE t2 (`numeropost` mediumint(8) unsigned NOT NULL default '0',`pseudo` char(35) NOT NULL default '',PRIMARY KEY (`numeropost`,`pseudo`),KEY `pseudo` (`pseudo`));INSERT INTO t1 (titre,auteur,dest) VALUES ('test','joce','bug');INSERT INTO t2 (numeropost,pseudo) VALUES (1,'joce'),(1,'bug');SELECT titre,t1.numeropost,auteur,icone,nbrep,0,date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;titre numeropost auteur icone nbrep 0 date vue ouvert lastauteur desttest 1 joce 0 0 0 0000-00-00 00:00:00 0 1 bugSELECT titre,numeropost,auteur,icone,nbrep,0,date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;titre numeropost auteur icone nbrep 0 date vue ouvert lastauteur desttest 1 joce 0 0 0 0000-00-00 00:00:00 0 1 bugSELECT titre,t1.numeropost,auteur,icone,nbrep,'0',date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;titre numeropost auteur icone nbrep 0 date vue ouvert lastauteur desttest 1 joce 0 0 0 0000-00-00 00:00:00 0 1 bugSELECT titre,numeropost,auteur,icone,nbrep,'0',date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;titre numeropost auteur icone nbrep 0 date vue ouvert lastauteur desttest 1 joce 0 0 0 0000-00-00 00:00:00 0 1 bugdrop table t1,t2;CREATE TABLE t1 (a int, b int);INSERT INTO t1 VALUES (1, 2);INSERT INTO t1 VALUES (3, 4);INSERT INTO t1 VALUES (5, NULL);SELECT * FROM t1 ORDER BY b;a b5 NULL1 23 4SELECT * FROM t1 ORDER BY b DESC;a b3 41 25 NULLSELECT * FROM t1 ORDER BY (a + b);a b5 NULL1 23 4SELECT * FROM t1 ORDER BY (a + b) DESC;a b3 41 25 NULLDROP TABLE t1;create table t1(id int not null auto_increment primary key, t char(12));explain select id,t from t1 order by id;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 Using filesortexplain select id,t from t1 force index (primary) order by id;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 index NULL PRIMARY 4 NULL 1000 drop table t1;CREATE TABLE t1 (FieldKey varchar(36) NOT NULL default '',LongVal bigint(20) default NULL,StringVal mediumtext,KEY FieldKey (FieldKey),KEY LongField (FieldKey,LongVal),KEY StringField (FieldKey,StringVal(32)));INSERT INTO t1 VALUES ('0',3,'0'),('0',2,'1'),('0',1,'2'),('1',2,'1'),('1',1,'3'), ('1',0,'2'),('2',3,'0'),('2',2,'1'),('2',1,'2'),('2',3,'0'),('2',2,'1'),('2',1,'2'),('3',2,'1'),('3',1,'2'),('3','3','3');EXPLAIN SELECT * FROM t1 WHERE FieldKey = '1' ORDER BY LongVal;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 ref FieldKey,LongField,StringField LongField 38 const 3 Using whereSELECT * FROM t1 WHERE FieldKey = '1' ORDER BY LongVal;FieldKey LongVal StringVal1 0 21 1 31 2 1EXPLAIN SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY LongVal;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range FieldKey,LongField,StringField FieldKey 38 NULL 4 Using where; Using filesortSELECT * FROM t1 WHERE FieldKey > '2' ORDER BY LongVal;FieldKey LongVal StringVal3 1 23 2 13 3 3EXPLAIN SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY FieldKey, LongVal;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range FieldKey,LongField,StringField LongField 38 NULL 4 Using whereSELECT * FROM t1 WHERE FieldKey > '2' ORDER BY FieldKey, LongVal;FieldKey LongVal StringVal3 1 23 2 13 3 3DROP TABLE t1;CREATE TABLE t1 (a INT, b INT);SET @id=0;UPDATE t1 SET a=0 ORDER BY (a=@id), b;DROP TABLE t1;CREATE TABLE t1 ( id smallint(6) unsigned NOT NULL default '0', menu tinyint(4) NOT NULL default '0', KEY id (id), KEY menu (menu)) ENGINE=MyISAM;INSERT INTO t1 VALUES (11384, 2),(11392, 2);SELECT id FROM t1 WHERE id <11984 AND menu =2 ORDER BY id DESC LIMIT 1 ;id11392drop table t1;create table t1(a int, b int, index(b));insert into t1 values (2, 1), (1, 1), (4, NULL), (3, NULL), (6, 2), (5, 2);explain select * from t1 where b=1 or b is null order by a;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 ref_or_null b b 5 const 3 Using where; Using filesortselect * from t1 where b=1 or b is null order by a;a b1 12 13 NULL4 NULLexplain select * from t1 where b=2 or b is null order by a;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 ref_or_null b b 5 const 4 Using where; Using filesortselect * from t1 where b=2 or b is null order by a;a b3 NULL4 NULL5 26 2drop table t1;create table t1 (a int not null auto_increment, b int not null, c int not null, d int not null,key(a,b,d), key(c,b,a));create table t2 like t1;insert into t1 values (NULL, 1, 2, 0), (NULL, 2, 1, 1), (NULL, 3, 4, 2), (NULL, 4, 3, 3);insert into t2 select null, b, c, d from t1;insert into t1 select null, b, c, d from t2;insert into t2 select null, b, c, d from t1;insert into t1 select null, b, c, d from t2;insert into t2 select null, b, c, d from t1;insert into t1 select null, b, c, d from t2;insert into t2 select null, b, c, d from t1;insert into t1 select null, b, c, d from t2;insert into t2 select null, b, c, d from t1;insert into t1 select null, b, c, d from t2;optimize table t1;Table Op Msg_type Msg_texttest.t1 optimize status OKset @row=10;insert into t1 select 1, b, c + (@row:=@row - 1) * 10, d - @row from t2 limit 10;select * from t1 where a=1 and b in (1) order by c, b, a;a b c d1 1 2 01 1 12 -11 1 52 -51 1 92 -9select * from t1 where a=1 and b in (1);a b c d1 1 92 -91 1 52 -51 1 12 -11 1 2 0drop table t1, t2;create table t1 (col1 int, col int);create table t2 (col2 int, col int);insert into t1 values (1,1),(2,2),(3,3);insert into t2 values (1,3),(2,2),(3,1);select t1.* , t2.col as t2_col from t1 left join t2 on (t1.col1=t2.col2)order by col;col1 col t2_col1 1 32 2 23 3 1select col1 as col, col from t1 order by col;ERROR 23000: Column 'col' in order clause is ambiguousselect t1.col as c1, t2.col as c2 from t1, t2 where t1.col1=t2.col2order by col;ERROR 23000: Column 'col' in order clause is ambiguousselect t1.col as c1, t2.col as c2 from t1, t2 where t1.col1=t2.col2order by col;ERROR 23000: Column 'col' in order clause is ambiguousselect col1 from t1, t2 where t1.col1=t2.col2 order by col;ERROR 23000: Column 'col' in order clause is ambiguousselect t1.col as t1_col, t2.col2 from t1, t2 where t1.col1=t2.col2order by col;ERROR 23000: Column 'col' in order clause is ambiguousselect t1.col as t1_col, t2.col from t1, t2 where t1.col1=t2.col2order by col;t1_col col3 12 21 3select col2 as c, col as c from t2 order by col;c c3 12 21 3select col2 as col, col as col2 from t2 order by col;col col21 32 23 1select t2.col2, t2.col, t2.col from t2 order by col;col2 col col3 1 12 2 21 3 3select t2.col2 as col from t2 order by t2.col;col321select t2.col2 as col, t2.col from t2 order by t2.col;col col3 12 21 3select t2.col2, t2.col, t2.col from t2 order by t2.col;col2 col col3 1 12 2 21 3 3drop table t1, t2;create table t1 (a char(25));insert into t1 set a = repeat('x', 20);insert into t1 set a = concat(repeat('x', 19), 'z');insert into t1 set a = concat(repeat('x', 19), 'ab');insert into t1 set a = concat(repeat('x', 19), 'aa');set max_sort_length=20;select a from t1 order by a;axxxxxxxxxxxxxxxxxxxabxxxxxxxxxxxxxxxxxxxaaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzdrop table t1;create table t1 (a int not null, b int not null, c int not null);insert t1 values (1,1,1),(1,1,2),(1,2,1);select a, b from t1 group by a, b order by sum(c);a b1 21 1drop table t1;create table t1 (`sid` decimal(8,0) default null,`wnid` varchar(11) not null default '',key `wnid14` (`wnid`(4)),key `wnid` (`wnid`)) engine=myisam default charset=latin1;insert into t1 (`sid`, `wnid`) values('10100','01019000000'),('37986','01019000000'),('37987','01019010000'),('39560','01019090000'),('37989','01019000000'),('37990','01019011000'),('37991','01019011000'),('37992','01019019000'),('37993','01019030000'),('37994','01019090000'),('475','02070000000'),('25253','02071100000'),('25255','02071100000'),('25256','02071110000'),('25258','02071130000'),('25259','02071190000'),('25260','02071200000'),('25261','02071210000'),('25262','02071290000'),('25263','02071300000'),('25264','02071310000'),('25265','02071310000'),('25266','02071320000'),('25267','02071320000'),('25269','02071330000'),('25270','02071340000'),('25271','02071350000'),('25272','02071360000'),('25273','02071370000'),('25281','02071391000'),('25282','02071391000'),('25283','02071399000'),('25284','02071400000'),('25285','02071410000'),('25286','02071410000'),('25287','02071420000'),('25288','02071420000'),('25291','02071430000'),('25290','02071440000'),('25292','02071450000'),('25293','02071460000'),('25294','02071470000'),('25295','02071491000'),('25296','02071491000'),('25297','02071499000');explain select * from t1 where wnid like '0101%' order by wnid;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 range wnid14,wnid wnid 13 NULL 10 Using whereselect * from t1 where wnid like '0101%' order by wnid;sid wnid10100 0101900000037986 0101900000037989 0101900000037987 0101901000037990 0101901100037991 0101901100037992 0101901900037993 0101903000039560 0101909000037994 01019090000drop table t1;CREATE TABLE t1 (a int);INSERT INTO t1 VALUES (2), (1), (1), (2), (1);SELECT a FROM t1 ORDER BY a;a11122(SELECT a FROM t1) ORDER BY a;a11122DROP TABLE t1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -