~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysql-test/r/order_by.result

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
drop table if exists t1,t2,t3;
 
2
CREATE TABLE t1 (
 
3
id int(6) DEFAULT '0' NOT NULL,
 
4
idservice int(5),
 
5
clee char(20) NOT NULL,
 
6
flag char(1),
 
7
KEY id (id),
 
8
PRIMARY KEY (clee)
 
9
);
 
10
INSERT INTO t1 VALUES (2,4,'6067169d','Y');
 
11
INSERT INTO t1 VALUES (2,5,'606716d1','Y');
 
12
INSERT INTO t1 VALUES (2,1,'606717c1','Y');
 
13
INSERT INTO t1 VALUES (3,1,'6067178d','Y');
 
14
INSERT INTO t1 VALUES (2,6,'60671515','Y');
 
15
INSERT INTO t1 VALUES (2,7,'60671569','Y');
 
16
INSERT INTO t1 VALUES (2,3,'dd','Y');
 
17
CREATE TABLE t2 (
 
18
id int(6) NOT NULL auto_increment,
 
19
description varchar(40) NOT NULL,
 
20
idform varchar(40),
 
21
ordre int(6) unsigned DEFAULT '0' NOT NULL,
 
22
image varchar(60),
 
23
PRIMARY KEY (id),
 
24
KEY id (id,ordre)
 
25
);
 
26
INSERT INTO t2 VALUES (1,'Emettre un appel d''offres','en_construction.html',10,'emettre.gif');
 
27
INSERT INTO t2 VALUES (2,'Emettre des soumissions','en_construction.html',20,'emettre.gif');
 
28
INSERT INTO t2 VALUES (7,'Liste des t2','t2_liste_form.phtml',51060,'link.gif');
 
29
INSERT INTO t2 VALUES (8,'Consulter les soumissions','consulter_soumissions.phtml',200,'link.gif');
 
30
INSERT INTO t2 VALUES (9,'Ajouter un type de materiel','typeMateriel_ajoute_form.phtml',51000,'link.gif');
 
31
INSERT INTO t2 VALUES (10,'Lister/modifier un type de materiel','typeMateriel_liste_form.phtml',51010,'link.gif');
 
32
INSERT INTO t2 VALUES (3,'CrĂ©er une fiche de client','clients_ajoute_form.phtml',40000,'link.gif');
 
33
INSERT INTO t2 VALUES (4,'Modifier des clients','en_construction.html',40010,'link.gif');
 
34
INSERT INTO t2 VALUES (5,'Effacer des clients','en_construction.html',40020,'link.gif');
 
35
INSERT INTO t2 VALUES (6,'Ajouter un service','t2_ajoute_form.phtml',51050,'link.gif');
 
36
select t1.id,t1.idservice,t2.ordre,t2.description  from t1, t2 where t1.id = 2   and t1.idservice = t2.id  order by t2.ordre;
 
37
id      idservice       ordre   description
 
38
2       1       10      Emettre un appel d'offres
 
39
2       3       40000   CrĂ©er une fiche de client
 
40
2       4       40010   Modifier des clients
 
41
2       5       40020   Effacer des clients
 
42
2       6       51050   Ajouter un service
 
43
2       7       51060   Liste des t2
 
44
drop table t1,t2;
 
45
create table t1 (first char(10),last char(10));
 
46
insert into t1 values ("Michael","Widenius");
 
47
insert into t1 values ("Allan","Larsson");
 
48
insert into t1 values ("David","Axmark");
 
49
select concat(first," ",last) as name from t1 order by name;
 
50
name
 
51
Allan Larsson
 
52
David Axmark
 
53
Michael Widenius
 
54
select concat(last," ",first) as name from t1 order by name;
 
55
name
 
56
Axmark David
 
57
Larsson Allan
 
58
Widenius Michael
 
59
drop table t1;
 
60
create table t1 (i int);
 
61
insert into t1 values(1),(2),(1),(2),(1),(2),(3);
 
62
select distinct i from t1;
 
63
i
 
64
1
 
65
2
 
66
3
 
67
select distinct i from t1 order by rand(5);
 
68
i
 
69
1
 
70
3
 
71
2
 
72
select distinct i from t1 order by i desc;
 
73
i
 
74
3
 
75
2
 
76
1
 
77
select distinct i from t1 order by 1-i;
 
78
i
 
79
3
 
80
2
 
81
1
 
82
select distinct i from t1 order by mod(i,2),i;
 
83
i
 
84
2
 
85
1
 
86
3
 
87
drop table t1;
 
88
create table t1 ( pk     int primary key, name   varchar(255) not null, number varchar(255) not null);
 
89
insert into t1 values (1, 'Gamma',     '123'), (2, 'Gamma Ext', '123a'), (3, 'Alpha',     '001'), (4, 'Beta',      '200c');
 
90
select distinct t1.name as 'Building Name',t1.number as 'Building Number' from t1 order by t1.name asc;
 
91
Building Name   Building Number
 
92
Alpha   001
 
93
Beta    200c
 
94
Gamma   123
 
95
Gamma Ext       123a
 
96
drop table t1;
 
97
create table t1 (id int not null,col1 int not null,col2 int not null,index(col1));
 
98
insert into t1 values(1,2,2),(2,2,1),(3,1,2),(4,1,1),(5,1,4),(6,2,3),(7,3,1),(8,2,4);
 
99
select * from t1 order by col1,col2;
 
100
id      col1    col2
 
101
4       1       1
 
102
3       1       2
 
103
5       1       4
 
104
2       2       1
 
105
1       2       2
 
106
6       2       3
 
107
8       2       4
 
108
7       3       1
 
109
select col1 from t1 order by id;
 
110
col1
 
111
2
 
112
2
 
113
1
 
114
1
 
115
1
 
116
2
 
117
3
 
118
2
 
119
select col1 as id from t1 order by id;
 
120
id
 
121
1
 
122
1
 
123
1
 
124
2
 
125
2
 
126
2
 
127
2
 
128
3
 
129
select concat(col1) as id from t1 order by id;
 
130
id
 
131
1
 
132
1
 
133
1
 
134
2
 
135
2
 
136
2
 
137
2
 
138
3
 
139
drop table t1;
 
140
CREATE TABLE t1 (id int auto_increment primary key,aika varchar(40),aikakentta  timestamp);
 
141
insert into t1 (aika) values ('Keskiviikko');
 
142
insert into t1 (aika) values ('Tiistai');
 
143
insert into t1 (aika) values ('Maanantai');
 
144
insert into t1 (aika) values ('Sunnuntai');
 
145
SELECT FIELD(SUBSTRING(t1.aika,1,2),'Ma','Ti','Ke','To','Pe','La','Su') AS test FROM t1 ORDER by test;
 
146
test
 
147
1
 
148
2
 
149
3
 
150
7
 
151
drop table t1;
 
152
CREATE TABLE t1
 
153
(
 
154
a          int unsigned       NOT NULL,
 
155
b          int unsigned       NOT NULL,
 
156
c          int unsigned       NOT NULL,
 
157
UNIQUE(a),
 
158
INDEX(b),
 
159
INDEX(c)
 
160
);
 
161
CREATE TABLE t2
 
162
(
 
163
c          int unsigned       NOT NULL,
 
164
i          int unsigned       NOT NULL,
 
165
INDEX(c)
 
166
);
 
167
CREATE TABLE t3
 
168
(
 
169
c          int unsigned       NOT NULL,
 
170
v          varchar(64),
 
171
INDEX(c)
 
172
);
 
173
INSERT INTO t1 VALUES (1,1,1);
 
174
INSERT INTO t1 VALUES (2,1,2);
 
175
INSERT INTO t1 VALUES (3,2,1);
 
176
INSERT INTO t1 VALUES (4,2,2);
 
177
INSERT INTO t2 VALUES (1,50);
 
178
INSERT INTO t2 VALUES (2,25);
 
179
INSERT INTO t3 VALUES (1,'123 Park Place');
 
180
INSERT INTO t3 VALUES (2,'453 Boardwalk');
 
181
SELECT    a,b,if(b = 1,i,if(b = 2,v,''))
 
182
FROM      t1
 
183
LEFT JOIN t2 USING(c)
 
184
LEFT JOIN t3 ON t3.c = t1.c;
 
185
a       b       if(b = 1,i,if(b = 2,v,''))
 
186
1       1       50
 
187
2       1       25
 
188
3       2       123 Park Place
 
189
4       2       453 Boardwalk
 
190
SELECT    a,b,if(b = 1,i,if(b = 2,v,''))
 
191
FROM      t1
 
192
LEFT JOIN t2 ON t1.c = t2.c
 
193
LEFT JOIN t3 ON t3.c = t1.c;
 
194
a       b       if(b = 1,i,if(b = 2,v,''))
 
195
1       1       50
 
196
2       1       25
 
197
3       2       123 Park Place
 
198
4       2       453 Boardwalk
 
199
SELECT    a,b,if(b = 1,i,if(b = 2,v,''))
 
200
FROM      t1
 
201
LEFT JOIN t2 USING(c)
 
202
LEFT JOIN t3 ON t3.c = t1.c
 
203
ORDER BY a;
 
204
a       b       if(b = 1,i,if(b = 2,v,''))
 
205
1       1       50
 
206
2       1       25
 
207
3       2       123 Park Place
 
208
4       2       453 Boardwalk
 
209
SELECT    a,b,if(b = 1,i,if(b = 2,v,''))
 
210
FROM      t1
 
211
LEFT JOIN t2 ON t1.c = t2.c
 
212
LEFT JOIN t3 ON t3.c = t1.c
 
213
ORDER BY a;
 
214
a       b       if(b = 1,i,if(b = 2,v,''))
 
215
1       1       50
 
216
2       1       25
 
217
3       2       123 Park Place
 
218
4       2       453 Boardwalk
 
219
drop table t1,t2,t3;
 
220
create table t1 (ID int not null primary key, TransactionID int not null);
 
221
insert into t1 (ID, TransactionID) values  (1,  87), (2,  89), (3,  92), (4,  94), (5,  486), (6,  490), (7,  753), (9,  828), (10, 832), (11, 834), (12, 840);
 
222
create table t2 (ID int not null primary key, GroupID int not null);
 
223
insert into t2 (ID, GroupID) values (87,  87), (89,  89), (92,  92), (94,  94), (486, 486), (490, 490),(753, 753), (828, 828), (832, 832), (834, 834), (840, 840);
 
224
create table t3 (ID int not null primary key, DateOfAction date not null);
 
225
insert into t3 (ID, DateOfAction) values  (87,  '1999-07-19'), (89,  '1999-07-19'), (92,  '1999-07-19'), (94,  '1999-07-19'), (486, '1999-07-18'), (490, '2000-03-27'), (753, '2000-03-28'), (828, '1999-07-27'), (832, '1999-07-27'),(834, '1999-07-27'), (840, '1999-07-27');
 
226
select t3.DateOfAction, t1.TransactionID from t1 join t2 join t3 where t2.ID = t1.TransactionID and t3.ID = t2.GroupID order by t3.DateOfAction, t1.TransactionID;
 
227
DateOfAction    TransactionID
 
228
1999-07-18      486
 
229
1999-07-19      87
 
230
1999-07-19      89
 
231
1999-07-19      92
 
232
1999-07-19      94
 
233
1999-07-27      828
 
234
1999-07-27      832
 
235
1999-07-27      834
 
236
1999-07-27      840
 
237
2000-03-27      490
 
238
2000-03-28      753
 
239
select t3.DateOfAction, t1.TransactionID from t1 join t2 join t3 where t2.ID = t1.TransactionID and t3.ID = t2.GroupID order by t1.TransactionID,t3.DateOfAction;
 
240
DateOfAction    TransactionID
 
241
1999-07-19      87
 
242
1999-07-19      89
 
243
1999-07-19      92
 
244
1999-07-19      94
 
245
1999-07-18      486
 
246
2000-03-27      490
 
247
2000-03-28      753
 
248
1999-07-27      828
 
249
1999-07-27      832
 
250
1999-07-27      834
 
251
1999-07-27      840
 
252
drop table t1,t2,t3;
 
253
CREATE TABLE t1 (
 
254
member_id int(11) NOT NULL auto_increment,
 
255
inschrijf_datum varchar(20) NOT NULL default '',
 
256
lastchange_datum varchar(20) NOT NULL default '',
 
257
nickname varchar(20) NOT NULL default '',
 
258
password varchar(8) NOT NULL default '',
 
259
voornaam varchar(30) NOT NULL default '',
 
260
tussenvoegsels varchar(10) NOT NULL default '',
 
261
achternaam varchar(50) NOT NULL default '',
 
262
straat varchar(100) NOT NULL default '',
 
263
postcode varchar(10) NOT NULL default '',
 
264
wijk varchar(40) NOT NULL default '',
 
265
plaats varchar(50) NOT NULL default '',
 
266
telefoon varchar(10) NOT NULL default '',
 
267
geboortedatum date NOT NULL default '0000-00-00',
 
268
geslacht varchar(5) NOT NULL default '',
 
269
email varchar(80) NOT NULL default '',
 
270
uin varchar(15) NOT NULL default '',
 
271
homepage varchar(100) NOT NULL default '',
 
272
internet varchar(15) NOT NULL default '',
 
273
scherk varchar(30) NOT NULL default '',
 
274
favo_boek varchar(50) NOT NULL default '',
 
275
favo_tijdschrift varchar(50) NOT NULL default '',
 
276
favo_tv varchar(50) NOT NULL default '',
 
277
favo_eten varchar(50) NOT NULL default '',
 
278
favo_muziek varchar(30) NOT NULL default '',
 
279
info text NOT NULL default '',
 
280
ipnr varchar(30) NOT NULL default '',
 
281
PRIMARY KEY  (member_id)
 
282
) ENGINE=MyISAM PACK_KEYS=1;
 
283
Warnings:
 
284
Warning 1101    BLOB/TEXT column 'info' can't have a default value
 
285
insert into t1 (member_id) values (1),(2),(3);
 
286
select member_id, nickname, voornaam FROM t1
 
287
ORDER by lastchange_datum DESC LIMIT 2;
 
288
member_id       nickname        voornaam
 
289
1               
 
290
2               
 
291
drop table t1;
 
292
create table t1 (a int not null, b int, c varchar(10), key (a, b, c));
 
293
insert into t1 values (1, NULL, NULL), (1, NULL, 'b'), (1, 1, NULL), (1, 1, 'b'), (1, 1, 'b'), (2, 1, 'a'), (2, 1, 'b'), (2, 2, 'a'), (2, 2, 'b'), (2, 3, 'c'),(1,3,'b');
 
294
explain select * from t1 where (a = 1 and b is null and c = 'b') or (a > 2) order by a desc;
 
295
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
296
1       SIMPLE  t1      index   a       a       22      NULL    11      Using where; Using index
 
297
select * from t1 where (a = 1 and b is null and c = 'b') or (a > 2) order by a desc;
 
298
a       b       c
 
299
1       NULL    b
 
300
explain select * from t1 where a >= 1 and a < 3 order by a desc;
 
301
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
302
1       SIMPLE  t1      range   a       a       4       NULL    10      Using where; Using index
 
303
select * from t1 where a >= 1 and a < 3 order by a desc;
 
304
a       b       c
 
305
2       3       c
 
306
2       2       b
 
307
2       2       a
 
308
2       1       b
 
309
2       1       a
 
310
1       3       b
 
311
1       1       b
 
312
1       1       b
 
313
1       1       NULL
 
314
1       NULL    b
 
315
1       NULL    NULL
 
316
explain select * from t1 where a = 1 order by a desc, b desc;
 
317
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
318
1       SIMPLE  t1      ref     a       a       4       const   5       Using where; Using index
 
319
select * from t1 where a = 1 order by a desc, b desc;
 
320
a       b       c
 
321
1       3       b
 
322
1       1       b
 
323
1       1       b
 
324
1       1       NULL
 
325
1       NULL    b
 
326
1       NULL    NULL
 
327
explain select * from t1 where a = 1 and b is null order by a desc, b desc;
 
328
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
329
1       SIMPLE  t1      ref     a       a       9       const,const     2       Using where; Using index; Using filesort
 
330
select * from t1 where a = 1 and b is null order by a desc, b desc;
 
331
a       b       c
 
332
1       NULL    NULL
 
333
1       NULL    b
 
334
explain select * from t1 where a >= 1 and a < 3 and b >0 order by a desc,b desc;
 
335
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
336
1       SIMPLE  t1      range   a       a       9       NULL    8       Using where; Using index
 
337
explain select * from t1 where a = 2 and b >0 order by a desc,b desc;
 
338
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
339
1       SIMPLE  t1      range   a       a       9       NULL    5       Using where; Using index
 
340
explain select * from t1 where a = 2 and b is null order by a desc,b desc;
 
341
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
342
1       SIMPLE  t1      ref     a       a       9       const,const     1       Using where; Using index; Using filesort
 
343
explain select * from t1 where a = 2 and (b is null or b > 0) order by a
 
344
desc,b desc;
 
345
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
346
1       SIMPLE  t1      range   a       a       9       NULL    6       Using where; Using index
 
347
explain select * from t1 where a = 2 and b > 0 order by a desc,b desc;
 
348
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
349
1       SIMPLE  t1      range   a       a       9       NULL    5       Using where; Using index
 
350
explain select * from t1 where a = 2 and b < 2 order by a desc,b desc;
 
351
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
352
1       SIMPLE  t1      range   a       a       9       NULL    2       Using where; Using index
 
353
explain select * from t1 where a = 1 order by b desc;
 
354
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
355
1       SIMPLE  t1      ref     a       a       4       const   5       Using where; Using index
 
356
select * from t1 where a = 1 order by b desc;
 
357
a       b       c
 
358
1       3       b
 
359
1       1       b
 
360
1       1       b
 
361
1       1       NULL
 
362
1       NULL    b
 
363
1       NULL    NULL
 
364
alter table t1 modify b int not null, modify c varchar(10) not null;
 
365
Warnings:
 
366
Warning 1265    Data truncated for column 'b' at row 1
 
367
Warning 1265    Data truncated for column 'c' at row 1
 
368
Warning 1265    Data truncated for column 'b' at row 2
 
369
Warning 1265    Data truncated for column 'c' at row 3
 
370
explain select * from t1 order by a, b, c;
 
371
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
372
1       SIMPLE  t1      index   NULL    a       20      NULL    11      Using index
 
373
select * from t1 order by a, b, c;
 
374
a       b       c
 
375
1       0       
 
376
1       0       b
 
377
1       1       
 
378
1       1       b
 
379
1       1       b
 
380
1       3       b
 
381
2       1       a
 
382
2       1       b
 
383
2       2       a
 
384
2       2       b
 
385
2       3       c
 
386
explain select * from t1 order by a desc, b desc, c desc;
 
387
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
388
1       SIMPLE  t1      index   NULL    a       20      NULL    11      Using index
 
389
select * from t1 order by a desc, b desc, c desc;
 
390
a       b       c
 
391
2       3       c
 
392
2       2       b
 
393
2       2       a
 
394
2       1       b
 
395
2       1       a
 
396
1       3       b
 
397
1       1       b
 
398
1       1       b
 
399
1       1       
 
400
1       0       b
 
401
1       0       
 
402
explain select * from t1 where (a = 1 and b = 1 and c = 'b') or (a > 2) order by a desc;
 
403
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
404
1       SIMPLE  t1      range   a       a       20      NULL    3       Using where; Using index
 
405
select * from t1 where (a = 1 and b = 1 and c = 'b') or (a > 2) order by a desc;
 
406
a       b       c
 
407
1       1       b
 
408
1       1       b
 
409
explain select * from t1 where a < 2 and b <= 1 order by a desc, b desc;
 
410
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
411
1       SIMPLE  t1      range   a       a       4       NULL    6       Using where; Using index
 
412
select * from t1 where a < 2 and b <= 1 order by a desc, b desc;
 
413
a       b       c
 
414
1       1       b
 
415
1       1       b
 
416
1       1       
 
417
1       0       b
 
418
1       0       
 
419
select count(*) from t1 where a < 5 and b > 0;
 
420
count(*)
 
421
9
 
422
select * from t1 where a < 5 and b > 0 order by a desc,b desc;
 
423
a       b       c
 
424
2       3       c
 
425
2       2       b
 
426
2       2       a
 
427
2       1       b
 
428
2       1       a
 
429
1       3       b
 
430
1       1       b
 
431
1       1       b
 
432
1       1       
 
433
explain select * from t1 where a between 1 and 3 and b <= 1 order by a desc, b desc;
 
434
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
435
1       SIMPLE  t1      range   a       a       8       NULL    10      Using where; Using index
 
436
select * from t1 where a between 1 and 3 and b <= 1 order by a desc, b desc;
 
437
a       b       c
 
438
2       1       b
 
439
2       1       a
 
440
1       1       b
 
441
1       1       b
 
442
1       1       
 
443
1       0       b
 
444
1       0       
 
445
explain select * from t1 where a between 0 and 1 order by a desc, b desc;
 
446
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
447
1       SIMPLE  t1      range   a       a       4       NULL    5       Using where; Using index
 
448
select * from t1 where a between 0 and 1 order by a desc, b desc;
 
449
a       b       c
 
450
1       3       b
 
451
1       1       b
 
452
1       1       b
 
453
1       1       
 
454
1       0       b
 
455
1       0       
 
456
drop table t1;
 
457
CREATE TABLE t1 (
 
458
gid int(10) unsigned NOT NULL auto_increment,
 
459
cid smallint(5) unsigned NOT NULL default '0',
 
460
PRIMARY KEY  (gid),
 
461
KEY component_id (cid)
 
462
) ENGINE=MyISAM;
 
463
INSERT INTO t1 VALUES (103853,108),(103867,108),(103962,108),(104505,108),(104619,108),(104620,108);
 
464
ALTER TABLE t1 add skr int(10) not null;
 
465
CREATE TABLE t2 (
 
466
gid int(10) unsigned NOT NULL default '0',
 
467
uid smallint(5) unsigned NOT NULL default '1',
 
468
sid tinyint(3) unsigned NOT NULL default '1',
 
469
PRIMARY KEY  (gid),
 
470
KEY uid (uid),
 
471
KEY status_id (sid)
 
472
) ENGINE=MyISAM;
 
473
INSERT INTO t2 VALUES (103853,250,5),(103867,27,5),(103962,27,5),(104505,117,5),(104619,75,5),(104620,15,5);
 
474
CREATE TABLE t3 (
 
475
uid smallint(6) NOT NULL auto_increment,
 
476
PRIMARY KEY  (uid)
 
477
) ENGINE=MyISAM;
 
478
INSERT INTO t3 VALUES (1),(15),(27),(75),(117),(250);
 
479
ALTER TABLE t3 add skr int(10) not null;
 
480
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;
 
481
gid     sid     uid
 
482
104620  5       15
 
483
103867  5       27
 
484
103962  5       27
 
485
104619  5       75
 
486
104505  5       117
 
487
103853  5       250
 
488
select 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;
 
489
gid     sid     uid
 
490
104620  5       15
 
491
103867  5       27
 
492
103962  5       27
 
493
104619  5       75
 
494
104505  5       117
 
495
103853  5       250
 
496
EXPLAIN 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;
 
497
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
498
1       SIMPLE  t2      ALL     PRIMARY,uid     NULL    NULL    NULL    6       Using temporary; Using filesort
 
499
1       SIMPLE  t3      eq_ref  PRIMARY PRIMARY 2       test.t2.uid     1       Using where; Using index
 
500
1       SIMPLE  t1      eq_ref  PRIMARY PRIMARY 4       test.t2.gid     1       Using index
 
501
EXPLAIN SELECT t1.gid, t3.uid from t1, t3 where t1.gid = t3.uid order by t1.gid,t3.skr;
 
502
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
503
1       SIMPLE  t3      ALL     PRIMARY NULL    NULL    NULL    6       Using temporary; Using filesort
 
504
1       SIMPLE  t1      eq_ref  PRIMARY PRIMARY 4       test.t3.uid     1       Using where; Using index
 
505
EXPLAIN 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;
 
506
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
507
1       SIMPLE  t2      ALL     PRIMARY,uid     NULL    NULL    NULL    6       Using temporary; Using filesort
 
508
1       SIMPLE  t1      eq_ref  PRIMARY PRIMARY 4       test.t2.gid     1       Using index
 
509
1       SIMPLE  t3      eq_ref  PRIMARY PRIMARY 2       test.t2.uid     1       Using where; Using index
 
510
EXPLAIN SELECT t1.gid, t3.uid from t1, t3 where t1.gid = t3.uid order by t3.skr,t1.gid;
 
511
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
512
1       SIMPLE  t3      ALL     PRIMARY NULL    NULL    NULL    6       Using temporary; Using filesort
 
513
1       SIMPLE  t1      eq_ref  PRIMARY PRIMARY 4       test.t3.uid     1       Using where; Using index
 
514
EXPLAIN SELECT t1.gid, t3.uid from t1, t3 where t1.skr = t3.uid order by t1.gid,t3.skr;
 
515
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
516
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    6       Using temporary; Using filesort
 
517
1       SIMPLE  t3      eq_ref  PRIMARY PRIMARY 2       test.t1.skr     1       Using index condition
 
518
drop table t1,t2,t3;
 
519
CREATE TABLE t1 (
 
520
`titre` char(80) NOT NULL default '',
 
521
`numeropost` mediumint(8) unsigned NOT NULL auto_increment,
 
522
`date` datetime NOT NULL default '0000-00-00 00:00:00',
 
523
`auteur` char(35) NOT NULL default '',
 
524
`icone` tinyint(2) unsigned NOT NULL default '0',
 
525
`lastauteur` char(35) NOT NULL default '',
 
526
`nbrep` smallint(6) unsigned NOT NULL default '0',
 
527
`dest` char(35) NOT NULL default '',
 
528
`lu` tinyint(1) unsigned NOT NULL default '0',
 
529
`vue` mediumint(8) unsigned NOT NULL default '0',
 
530
`ludest` tinyint(1) unsigned NOT NULL default '0',
 
531
`ouvert` tinyint(1) unsigned NOT NULL default '1',
 
532
PRIMARY KEY  (`numeropost`),
 
533
KEY `date` (`date`),
 
534
KEY `dest` (`dest`,`ludest`),
 
535
KEY `auteur` (`auteur`,`lu`),
 
536
KEY `auteur_2` (`auteur`,`date`),
 
537
KEY `dest_2` (`dest`,`date`)
 
538
) CHECKSUM=1;
 
539
CREATE TABLE t2 (
 
540
`numeropost` mediumint(8) unsigned NOT NULL default '0',
 
541
`pseudo` char(35) NOT NULL default '',
 
542
PRIMARY KEY  (`numeropost`,`pseudo`),
 
543
KEY `pseudo` (`pseudo`)
 
544
);
 
545
INSERT INTO t1 (titre,auteur,dest) VALUES ('test','joce','bug');
 
546
INSERT INTO t2 (numeropost,pseudo) VALUES (1,'joce'),(1,'bug');
 
547
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;
 
548
titre   numeropost      auteur  icone   nbrep   0       date    vue     ouvert  lastauteur      dest
 
549
test    1       joce    0       0       0       0000-00-00 00:00:00     0       1               bug
 
550
SELECT 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;
 
551
titre   numeropost      auteur  icone   nbrep   0       date    vue     ouvert  lastauteur      dest
 
552
test    1       joce    0       0       0       0000-00-00 00:00:00     0       1               bug
 
553
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;
 
554
titre   numeropost      auteur  icone   nbrep   0       date    vue     ouvert  lastauteur      dest
 
555
test    1       joce    0       0       0       0000-00-00 00:00:00     0       1               bug
 
556
SELECT 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;
 
557
titre   numeropost      auteur  icone   nbrep   0       date    vue     ouvert  lastauteur      dest
 
558
test    1       joce    0       0       0       0000-00-00 00:00:00     0       1               bug
 
559
drop table t1,t2;
 
560
CREATE TABLE t1 (a int, b int);
 
561
INSERT INTO t1 VALUES (1, 2);
 
562
INSERT INTO t1 VALUES (3, 4);
 
563
INSERT INTO t1 VALUES (5, NULL);
 
564
SELECT * FROM t1 ORDER BY b;
 
565
a       b
 
566
5       NULL
 
567
1       2
 
568
3       4
 
569
SELECT * FROM t1 ORDER BY b DESC;
 
570
a       b
 
571
3       4
 
572
1       2
 
573
5       NULL
 
574
SELECT * FROM t1 ORDER BY (a + b);
 
575
a       b
 
576
5       NULL
 
577
1       2
 
578
3       4
 
579
SELECT * FROM t1 ORDER BY (a + b) DESC;
 
580
a       b
 
581
3       4
 
582
1       2
 
583
5       NULL
 
584
DROP TABLE t1;
 
585
create table t1(id int not null auto_increment primary key, t char(12));
 
586
explain select id,t from t1 order by id;
 
587
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
588
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    1000    Using filesort
 
589
explain select id,t from t1 force index (primary) order by id;
 
590
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
591
1       SIMPLE  t1      index   NULL    PRIMARY 4       NULL    1000    
 
592
drop table t1;
 
593
CREATE TABLE t1 (
 
594
FieldKey varchar(36) NOT NULL default '',
 
595
LongVal bigint(20) default NULL,
 
596
StringVal mediumtext,
 
597
KEY FieldKey (FieldKey),
 
598
KEY LongField (FieldKey,LongVal),
 
599
KEY StringField (FieldKey,StringVal(32))
 
600
);
 
601
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');
 
602
EXPLAIN SELECT * FROM t1 WHERE FieldKey = '1' ORDER BY LongVal;
 
603
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
604
1       SIMPLE  t1      ref     FieldKey,LongField,StringField  LongField       38      const   3       Using where
 
605
SELECT * FROM t1 WHERE FieldKey = '1' ORDER BY LongVal;
 
606
FieldKey        LongVal StringVal
 
607
1       0       2
 
608
1       1       3
 
609
1       2       1
 
610
EXPLAIN SELECT * FROM t1 ignore index (FieldKey, LongField) WHERE FieldKey > '2' ORDER BY LongVal;
 
611
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
612
1       SIMPLE  t1      range   StringField     StringField     38      NULL    4       Using where; Using filesort
 
613
SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY LongVal;
 
614
FieldKey        LongVal StringVal
 
615
3       1       2
 
616
3       2       1
 
617
3       3       3
 
618
EXPLAIN SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY FieldKey, LongVal;
 
619
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
620
1       SIMPLE  t1      range   FieldKey,LongField,StringField  LongField       38      NULL    4       Using where
 
621
SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY FieldKey, LongVal;
 
622
FieldKey        LongVal StringVal
 
623
3       1       2
 
624
3       2       1
 
625
3       3       3
 
626
DROP TABLE t1;
 
627
CREATE TABLE t1 (a INT, b INT);
 
628
SET @id=0;
 
629
UPDATE t1 SET a=0 ORDER BY (a=@id), b;
 
630
DROP TABLE t1;
 
631
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;
 
632
INSERT INTO t1 VALUES (11384, 2),(11392, 2);
 
633
SELECT id FROM t1 WHERE id <11984 AND menu =2 ORDER BY id DESC LIMIT 1 ;
 
634
id
 
635
11392
 
636
drop table t1;
 
637
create table t1(a int, b int, index(b));
 
638
insert into t1 values (2, 1), (1, 1), (4, NULL), (3, NULL), (6, 2), (5, 2);
 
639
explain select * from t1 where b=1 or b is null order by a;
 
640
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
641
1       SIMPLE  t1      ref_or_null     b       b       5       const   3       Using filesort
 
642
select * from t1 where b=1 or b is null order by a;
 
643
a       b
 
644
1       1
 
645
2       1
 
646
3       NULL
 
647
4       NULL
 
648
explain select * from t1 where b=2 or b is null order by a;
 
649
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
650
1       SIMPLE  t1      ref_or_null     b       b       5       const   4       Using filesort
 
651
select * from t1 where b=2 or b is null order by a;
 
652
a       b
 
653
3       NULL
 
654
4       NULL
 
655
5       2
 
656
6       2
 
657
drop table t1;
 
658
create table t1 (a int not null auto_increment, b int not null, c int not null, d int not null,
 
659
key(a,b,d), key(c,b,a));
 
660
create table t2 like t1;
 
661
insert into t1 values (NULL, 1, 2, 0), (NULL, 2, 1, 1), (NULL, 3, 4, 2), (NULL, 4, 3, 3);
 
662
insert into t2 select null, b, c, d from t1;
 
663
insert into t1 select null, b, c, d from t2;
 
664
insert into t2 select null, b, c, d from t1;
 
665
insert into t1 select null, b, c, d from t2;
 
666
insert into t2 select null, b, c, d from t1;
 
667
insert into t1 select null, b, c, d from t2;
 
668
insert into t2 select null, b, c, d from t1;
 
669
insert into t1 select null, b, c, d from t2;
 
670
insert into t2 select null, b, c, d from t1;
 
671
insert into t1 select null, b, c, d from t2;
 
672
optimize table t1;
 
673
Table   Op      Msg_type        Msg_text
 
674
test.t1 optimize        status  OK
 
675
set @row=10;
 
676
insert into t1 select 1, b, c + (@row:=@row - 1) * 10, d - @row from t2 limit 10;
 
677
select * from t1 where a=1 and b in (1) order by c, b, a;
 
678
a       b       c       d
 
679
1       1       2       0
 
680
1       1       12      -1
 
681
1       1       52      -5
 
682
1       1       92      -9
 
683
select * from t1 where a=1 and b in (1);
 
684
a       b       c       d
 
685
1       1       92      -9
 
686
1       1       52      -5
 
687
1       1       12      -1
 
688
1       1       2       0
 
689
drop table t1, t2;
 
690
create table t1 (col1 int, col int);
 
691
create table t2 (col2 int, col int);
 
692
insert into t1 values (1,1),(2,2),(3,3);
 
693
insert into t2 values (1,3),(2,2),(3,1);
 
694
select t1.* , t2.col as t2_col from t1 left join t2 on (t1.col1=t2.col2)
 
695
order by col;
 
696
col1    col     t2_col
 
697
1       1       3
 
698
2       2       2
 
699
3       3       1
 
700
select col1 as col, col from t1 order by col;
 
701
ERROR 23000: Column 'col' in order clause is ambiguous
 
702
select t1.col as c1, t2.col as c2 from t1, t2 where t1.col1=t2.col2
 
703
order by col;
 
704
ERROR 23000: Column 'col' in order clause is ambiguous
 
705
select t1.col as c1, t2.col as c2 from t1, t2 where t1.col1=t2.col2
 
706
order by col;
 
707
ERROR 23000: Column 'col' in order clause is ambiguous
 
708
select col1 from t1, t2 where t1.col1=t2.col2 order by col;
 
709
ERROR 23000: Column 'col' in order clause is ambiguous
 
710
select t1.col as t1_col, t2.col2 from t1, t2 where t1.col1=t2.col2
 
711
order by col;
 
712
ERROR 23000: Column 'col' in order clause is ambiguous
 
713
select t1.col as t1_col, t2.col from t1, t2 where t1.col1=t2.col2
 
714
order by col;
 
715
t1_col  col
 
716
3       1
 
717
2       2
 
718
1       3
 
719
select col2 as c, col as c from t2 order by col;
 
720
c       c
 
721
3       1
 
722
2       2
 
723
1       3
 
724
select col2 as col, col as col2 from t2 order by col;
 
725
col     col2
 
726
1       3
 
727
2       2
 
728
3       1
 
729
select t2.col2, t2.col, t2.col from t2 order by col;
 
730
col2    col     col
 
731
3       1       1
 
732
2       2       2
 
733
1       3       3
 
734
select t2.col2 as col from t2 order by t2.col;
 
735
col
 
736
3
 
737
2
 
738
1
 
739
select t2.col2 as col, t2.col from t2 order by t2.col;
 
740
col     col
 
741
3       1
 
742
2       2
 
743
1       3
 
744
select t2.col2, t2.col, t2.col from t2 order by t2.col;
 
745
col2    col     col
 
746
3       1       1
 
747
2       2       2
 
748
1       3       3
 
749
drop table t1, t2;
 
750
create table t1 (a char(25));
 
751
insert into t1 set a = repeat('x', 20);
 
752
insert into t1 set a = concat(repeat('x', 19), 'z');
 
753
insert into t1 set a = concat(repeat('x', 19), 'ab');
 
754
insert into t1 set a = concat(repeat('x', 19), 'aa');
 
755
set max_sort_length=20;
 
756
select a from t1 order by a;
 
757
a
 
758
xxxxxxxxxxxxxxxxxxxab
 
759
xxxxxxxxxxxxxxxxxxxaa
 
760
xxxxxxxxxxxxxxxxxxxx
 
761
xxxxxxxxxxxxxxxxxxxz
 
762
drop table t1;
 
763
create table t1 (
 
764
`sid` decimal(8,0) default null,
 
765
`wnid` varchar(11) not null default '',
 
766
key `wnid14` (`wnid`(4)),
 
767
key `wnid` (`wnid`)
 
768
) engine=myisam default charset=latin1;
 
769
insert into t1 (`sid`, `wnid`) values
 
770
('10100','01019000000'),('37986','01019000000'),('37987','01019010000'),
 
771
('39560','01019090000'),('37989','01019000000'),('37990','01019011000'),
 
772
('37991','01019011000'),('37992','01019019000'),('37993','01019030000'),
 
773
('37994','01019090000'),('475','02070000000'),('25253','02071100000'),
 
774
('25255','02071100000'),('25256','02071110000'),('25258','02071130000'),
 
775
('25259','02071190000'),('25260','02071200000'),('25261','02071210000'),
 
776
('25262','02071290000'),('25263','02071300000'),('25264','02071310000'),
 
777
('25265','02071310000'),('25266','02071320000'),('25267','02071320000'),
 
778
('25269','02071330000'),('25270','02071340000'),('25271','02071350000'),
 
779
('25272','02071360000'),('25273','02071370000'),('25281','02071391000'),
 
780
('25282','02071391000'),('25283','02071399000'),('25284','02071400000'),
 
781
('25285','02071410000'),('25286','02071410000'),('25287','02071420000'),
 
782
('25288','02071420000'),('25291','02071430000'),('25290','02071440000'),
 
783
('25292','02071450000'),('25293','02071460000'),('25294','02071470000'),
 
784
('25295','02071491000'),('25296','02071491000'),('25297','02071499000');
 
785
explain select * from t1 where wnid like '0101%' order by wnid;
 
786
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
787
1       SIMPLE  t1      range   wnid14,wnid     wnid    13      NULL    10      Using where
 
788
select * from t1 where wnid like '0101%' order by wnid;
 
789
sid     wnid
 
790
10100   01019000000
 
791
37986   01019000000
 
792
37989   01019000000
 
793
37987   01019010000
 
794
37990   01019011000
 
795
37991   01019011000
 
796
37992   01019019000
 
797
37993   01019030000
 
798
39560   01019090000
 
799
37994   01019090000
 
800
drop table t1;
 
801
CREATE TABLE t1 (a int);
 
802
INSERT INTO t1 VALUES (2), (1), (1), (2), (1);
 
803
SELECT a FROM t1 ORDER BY a;
 
804
a
 
805
1
 
806
1
 
807
1
 
808
2
 
809
2
 
810
(SELECT a FROM t1) ORDER BY a;
 
811
a
 
812
1
 
813
1
 
814
1
 
815
2
 
816
2
 
817
DROP TABLE t1;
 
818
CREATE TABLE t1 (a int, b int);
 
819
INSERT INTO t1 VALUES (1,30), (2,20), (1,10), (2,30), (1,20), (2,10);
 
820
(SELECT b,a FROM t1 ORDER BY a,b) ORDER BY b,a;
 
821
b       a
 
822
10      1
 
823
10      2
 
824
20      1
 
825
20      2
 
826
30      1
 
827
30      2
 
828
(SELECT b FROM t1 ORDER BY b DESC) ORDER BY b ASC;
 
829
b
 
830
10
 
831
10
 
832
20
 
833
20
 
834
30
 
835
30
 
836
(SELECT b,a FROM t1 ORDER BY b,a) ORDER BY a,b;
 
837
b       a
 
838
10      1
 
839
20      1
 
840
30      1
 
841
10      2
 
842
20      2
 
843
30      2
 
844
(SELECT b,a FROM t1 ORDER by b,a LIMIT 3) ORDER by a,b;
 
845
b       a
 
846
10      1
 
847
20      1
 
848
10      2
 
849
DROP TABLE t1;
 
850
CREATE TABLE t1 (a INT);
 
851
INSERT INTO t1 VALUES (1),(2);
 
852
SELECT a + 1 AS num FROM t1 ORDER BY 30 - num;
 
853
num
 
854
3
 
855
2
 
856
SELECT CONCAT('test', a) AS str FROM t1 ORDER BY UPPER(str);
 
857
str
 
858
test1
 
859
test2
 
860
SELECT a + 1 AS num FROM t1 GROUP BY 30 - num;
 
861
num
 
862
3
 
863
2
 
864
SELECT a + 1 AS num FROM t1 HAVING 30 - num;
 
865
num
 
866
2
 
867
3
 
868
SELECT a + 1 AS num, num + 1 FROM t1;
 
869
ERROR 42S22: Unknown column 'num' in 'field list'
 
870
SELECT a + 1 AS num, (select num + 2 FROM t1 LIMIT 1) FROM t1;
 
871
num     (select num + 2 FROM t1 LIMIT 1)
 
872
2       4
 
873
3       5
 
874
SELECT a.a + 1 AS num FROM t1 a JOIN t1 b ON num = b.a;
 
875
ERROR 42S22: Unknown column 'num' in 'on clause'
 
876
DROP TABLE t1;
 
877
CREATE TABLE bug25126 (
 
878
val int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY
 
879
);
 
880
UPDATE bug25126 SET MissingCol = MissingCol;
 
881
ERROR 42S22: Unknown column 'MissingCol' in 'field list'
 
882
UPDATE bug25126 SET val = val ORDER BY MissingCol;
 
883
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
 
884
UPDATE bug25126 SET val = val ORDER BY val;
 
885
UPDATE bug25126 SET val = 1 ORDER BY val;
 
886
UPDATE bug25126 SET val = 1 ORDER BY MissingCol;
 
887
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
 
888
UPDATE bug25126 SET val = 1 ORDER BY val, MissingCol;
 
889
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
 
890
UPDATE bug25126 SET val = MissingCol ORDER BY MissingCol;
 
891
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
 
892
UPDATE bug25126 SET MissingCol = 1 ORDER BY val, MissingCol;
 
893
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
 
894
UPDATE bug25126 SET MissingCol = 1 ORDER BY MissingCol;
 
895
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
 
896
UPDATE bug25126 SET MissingCol = val ORDER BY MissingCol;
 
897
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
 
898
UPDATE bug25126 SET MissingCol = MissingCol ORDER BY MissingCol;
 
899
ERROR 42S22: Unknown column 'MissingCol' in 'order clause'
 
900
DROP TABLE bug25126;
 
901
CREATE TABLE t1 (a int);
 
902
SELECT p.a AS val, q.a AS val1 FROM t1 p, t1 q ORDER BY val > 1;
 
903
val     val1
 
904
SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val;
 
905
ERROR 23000: Column 'val' in order clause is ambiguous
 
906
SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val > 1;
 
907
ERROR 23000: Column 'val' in order clause is ambiguous
 
908
DROP TABLE t1;
 
909
CREATE TABLE t1 (a int);
 
910
INSERT INTO t1 VALUES (3), (2), (4), (1);
 
911
SELECT a, IF(a IN (2,3), a, a+10) FROM t1
 
912
ORDER BY IF(a IN (2,3), a, a+10);
 
913
a       IF(a IN (2,3), a, a+10)
 
914
2       2
 
915
3       3
 
916
1       11
 
917
4       14
 
918
SELECT a, IF(a NOT IN (2,3), a, a+10) FROM t1 
 
919
ORDER BY IF(a NOT IN (2,3), a, a+10);
 
920
a       IF(a NOT IN (2,3), a, a+10)
 
921
1       1
 
922
4       4
 
923
2       12
 
924
3       13
 
925
SELECT a, IF(a IN (2,3), a, a+10) FROM t1 
 
926
ORDER BY IF(a NOT IN (2,3), a, a+10);
 
927
a       IF(a IN (2,3), a, a+10)
 
928
1       11
 
929
4       14
 
930
2       2
 
931
3       3
 
932
SELECT a, IF(a BETWEEN 2 AND 3, a, a+10) FROM t1
 
933
ORDER BY IF(a BETWEEN 2 AND 3, a, a+10);
 
934
a       IF(a BETWEEN 2 AND 3, a, a+10)
 
935
2       2
 
936
3       3
 
937
1       11
 
938
4       14
 
939
SELECT a, IF(a NOT BETWEEN 2 AND 3, a, a+10) FROM t1 
 
940
ORDER BY IF(a NOT BETWEEN 2 AND 3, a, a+10);
 
941
a       IF(a NOT BETWEEN 2 AND 3, a, a+10)
 
942
1       1
 
943
4       4
 
944
2       12
 
945
3       13
 
946
SELECT a, IF(a BETWEEN 2 AND 3, a, a+10) FROM t1 
 
947
ORDER BY IF(a NOT BETWEEN 2 AND 3, a, a+10);
 
948
a       IF(a BETWEEN 2 AND 3, a, a+10)
 
949
1       11
 
950
4       14
 
951
2       2
 
952
3       3
 
953
SELECT IF(a IN (1,2), a, '') as x1, IF(a NOT IN (1,2), a, '') as x2
 
954
FROM t1 GROUP BY x1, x2;
 
955
x1      x2
 
956
        3
 
957
        4
 
958
1       
 
959
2       
 
960
SELECT IF(a IN (1,2), a, '') as x1, IF(a NOT IN (1,2), a, '') as x2
 
961
FROM t1 GROUP BY x1, IF(a NOT IN (1,2), a, '');
 
962
x1      x2
 
963
        3
 
964
        4
 
965
1       
 
966
2       
 
967
SELECT a, a IN (1,2) FROM t1 ORDER BY a IN (1,2);
 
968
a       a IN (1,2)
 
969
3       0
 
970
4       0
 
971
2       1
 
972
1       1
 
973
SELECT a FROM t1 ORDER BY a IN (1,2);
 
974
a
 
975
3
 
976
4
 
977
2
 
978
1
 
979
SELECT a+10 FROM t1 ORDER BY a IN (1,2);
 
980
a+10
 
981
13
 
982
14
 
983
12
 
984
11
 
985
SELECT a, IF(a IN (1,2), a, a+10) FROM t1
 
986
ORDER BY IF(a IN (3,4), a, a+10);
 
987
a       IF(a IN (1,2), a, a+10)
 
988
3       13
 
989
4       14
 
990
1       1
 
991
2       2
 
992
DROP TABLE t1;
 
993
create table t1 (a int not null, b  int not null, c int not null);
 
994
insert t1 values (1,1,1),(1,1,2),(1,2,1);
 
995
select a, b from t1 group by a, b order by sum(c);
 
996
a       b
 
997
1       2
 
998
1       1
 
999
drop table t1;
 
1000
CREATE TABLE t1 (a int, b int, PRIMARY KEY  (a));
 
1001
INSERT INTO t1 VALUES (1,1), (2,2), (3,3);
 
1002
explain SELECT t1.b as a, t2.b as c FROM 
 
1003
t1 LEFT JOIN t1 t2 ON (t1.a = t2.a AND t2.a = 2) 
 
1004
ORDER BY c;
 
1005
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1006
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       Using temporary; Using filesort
 
1007
1       SIMPLE  t2      const   PRIMARY PRIMARY 4       const   1       
 
1008
SELECT t2.b as c FROM 
 
1009
t1 LEFT JOIN t1 t2 ON (t1.a = t2.a AND t2.a = 2) 
 
1010
ORDER BY c;
 
1011
c
 
1012
NULL
 
1013
NULL
 
1014
2
 
1015
explain SELECT t1.b as a, t2.b as c FROM 
 
1016
t1 JOIN t1 t2 ON (t1.a = t2.a AND t2.a = 2)  
 
1017
ORDER BY c;
 
1018
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1019
1       SIMPLE  t1      const   PRIMARY PRIMARY 4       const   1       
 
1020
1       SIMPLE  t2      const   PRIMARY PRIMARY 4       const   1       
 
1021
CREATE TABLE t2 LIKE t1;
 
1022
INSERT INTO t2 SELECT * from t1;
 
1023
CREATE TABLE t3 LIKE t1;
 
1024
INSERT INTO t3 SELECT * from t1;
 
1025
CREATE TABLE t4 LIKE t1;
 
1026
INSERT INTO t4 SELECT * from t1;
 
1027
INSERT INTO t1 values (0,0),(4,4);
 
1028
SELECT t2.b FROM t1 LEFT JOIN (t2, t3 LEFT JOIN t4 ON t3.a=t4.a)
 
1029
ON (t1.a=t2.a AND t1.b=t3.b) order by t2.b;
 
1030
b
 
1031
NULL
 
1032
NULL
 
1033
1
 
1034
2
 
1035
3
 
1036
DROP TABLE t1,t2,t3,t4;
 
1037
create table t1 (a int, b int, c int);
 
1038
insert into t1 values (1,2,3), (9,8,3), (19,4,3), (1,4,9);
 
1039
select a,(sum(b)/sum(c)) as ratio from t1 group by a order by sum(b)/sum(c) asc;
 
1040
a       ratio
 
1041
1       0.5000
 
1042
19      1.3333
 
1043
9       2.6667
 
1044
drop table t1;
 
1045
CREATE TABLE t1 (a INT UNSIGNED NOT NULL, b TIME);
 
1046
INSERT INTO t1 (a) VALUES (100000), (0), (100), (1000000),(10000), (1000), (10);
 
1047
UPDATE t1 SET b = SEC_TO_TIME(a);
 
1048
SELECT a, b FROM t1 ORDER BY b DESC;
 
1049
a       b
 
1050
1000000 277:46:40
 
1051
100000  27:46:40
 
1052
10000   02:46:40
 
1053
1000    00:16:40
 
1054
100     00:01:40
 
1055
10      00:00:10
 
1056
0       00:00:00
 
1057
SELECT a, b FROM t1 ORDER BY SEC_TO_TIME(a) DESC;
 
1058
a       b
 
1059
1000000 277:46:40
 
1060
100000  27:46:40
 
1061
10000   02:46:40
 
1062
1000    00:16:40
 
1063
100     00:01:40
 
1064
10      00:00:10
 
1065
0       00:00:00
 
1066
DROP TABLE t1;
 
1067
CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), UNIQUE KEY b (b));
 
1068
INSERT INTO t1 VALUES (1,1),(2,2);
 
1069
CREATE TABLE t2 (a INT, b INT, KEY a (a,b));
 
1070
INSERT INTO t2 VALUES (1,1),(1,2),(2,1),(2,2);
 
1071
EXPLAIN SELECT 1 FROM t1,t2 WHERE t1.b=2 AND t1.a=t2.a ORDER BY t2.b;
 
1072
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1073
1       SIMPLE  t1      const   PRIMARY,b       b       5       const   1       
 
1074
1       SIMPLE  t2      ref     a       a       5       const   2       Using where; Using index
 
1075
DROP TABLE t1,t2;
 
1076
CREATE TABLE t1(
 
1077
id int auto_increment PRIMARY KEY, c2 int, c3 int, INDEX k2(c2), INDEX k3(c3));
 
1078
INSERT INTO t1 (c2,c3) VALUES
 
1079
(31,34),(35,38),(34,31),(32,35),(31,39),
 
1080
(11,14),(15,18),(14,11),(12,15),(11,19);
 
1081
INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1;
 
1082
INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1;
 
1083
INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1;
 
1084
INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1;
 
1085
INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1;
 
1086
INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1;
 
1087
INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1;
 
1088
INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1;
 
1089
INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1;
 
1090
INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1;
 
1091
INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1;
 
1092
INSERT INTO t1 (c2,c3) SELECT c2,c3 FROM t1;
 
1093
UPDATE t1 SET c2=20 WHERE id%100 = 0;
 
1094
SELECT COUNT(*) FROM t1;
 
1095
COUNT(*)
 
1096
40960
 
1097
CREATE TABLE t2 LIKE t1;
 
1098
INSERT INTO t2 SELECT * FROM t1 ORDER BY id;
 
1099
EXPLAIN SELECT id,c3 FROM t2 WHERE c2=11 ORDER BY c3 LIMIT 20;
 
1100
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1101
1       SIMPLE  t2      index   k2      k3      5       NULL    111     Using where
 
1102
EXPLAIN SELECT id,c3 FROM t2 WHERE c2=11 ORDER BY c3 LIMIT 4000;
 
1103
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1104
1       SIMPLE  t2      ref     k2      k2      5       const   7341    Using where; Using filesort
 
1105
EXPLAIN SELECT id,c3 FROM t2 WHERE c2 BETWEEN 10 AND 12 ORDER BY c3 LIMIT 20;
 
1106
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1107
1       SIMPLE  t2      index   k2      k3      5       NULL    73      Using where
 
1108
EXPLAIN SELECT id,c3 FROM t2 WHERE c2 BETWEEN 20 AND 30 ORDER BY c3 LIMIT 4000;
 
1109
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1110
1       SIMPLE  t2      range   k2      k2      5       NULL    386     Using index condition; Using where; Using MRR; Using filesort
 
1111
SELECT id,c3 FROM t2 WHERE c2=11 ORDER BY c3 LIMIT 20;
 
1112
id      c3
 
1113
6       14
 
1114
16      14
 
1115
26      14
 
1116
36      14
 
1117
46      14
 
1118
56      14
 
1119
66      14
 
1120
76      14
 
1121
86      14
 
1122
96      14
 
1123
106     14
 
1124
116     14
 
1125
126     14
 
1126
136     14
 
1127
146     14
 
1128
156     14
 
1129
166     14
 
1130
176     14
 
1131
186     14
 
1132
196     14
 
1133
DROP TABLE t1,t2;
 
1134
CREATE TABLE t1 (
 
1135
a INT,
 
1136
b INT,
 
1137
PRIMARY KEY (a),
 
1138
KEY ab(a, b)
 
1139
);
 
1140
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4);
 
1141
INSERT INTO t1 SELECT a + 4, b + 4 FROM t1;
 
1142
INSERT INTO t1 SELECT a + 8, b + 8 FROM t1;
 
1143
INSERT INTO t1 SELECT a +16, b +16 FROM t1;
 
1144
INSERT INTO t1 SELECT a +32, b +32 FROM t1;
 
1145
INSERT INTO t1 SELECT a +64, b +64 FROM t1;
 
1146
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (a, ab) GROUP BY a;
 
1147
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1148
1       SIMPLE  t1      range   NULL    ab      4       NULL    10      Using index for group-by
 
1149
SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (a, ab) GROUP BY a;
 
1150
a
 
1151
1
 
1152
2
 
1153
3
 
1154
4
 
1155
5
 
1156
6
 
1157
7
 
1158
8
 
1159
9
 
1160
10
 
1161
11
 
1162
12
 
1163
13
 
1164
14
 
1165
15
 
1166
16
 
1167
17
 
1168
18
 
1169
19
 
1170
20
 
1171
21
 
1172
22
 
1173
23
 
1174
24
 
1175
25
 
1176
26
 
1177
27
 
1178
28
 
1179
29
 
1180
30
 
1181
31
 
1182
32
 
1183
33
 
1184
34
 
1185
35
 
1186
36
 
1187
37
 
1188
38
 
1189
39
 
1190
40
 
1191
41
 
1192
42
 
1193
43
 
1194
44
 
1195
45
 
1196
46
 
1197
47
 
1198
48
 
1199
49
 
1200
50
 
1201
51
 
1202
52
 
1203
53
 
1204
54
 
1205
55
 
1206
56
 
1207
57
 
1208
58
 
1209
59
 
1210
60
 
1211
61
 
1212
62
 
1213
63
 
1214
64
 
1215
65
 
1216
66
 
1217
67
 
1218
68
 
1219
69
 
1220
70
 
1221
71
 
1222
72
 
1223
73
 
1224
74
 
1225
75
 
1226
76
 
1227
77
 
1228
78
 
1229
79
 
1230
80
 
1231
81
 
1232
82
 
1233
83
 
1234
84
 
1235
85
 
1236
86
 
1237
87
 
1238
88
 
1239
89
 
1240
90
 
1241
91
 
1242
92
 
1243
93
 
1244
94
 
1245
95
 
1246
96
 
1247
97
 
1248
98
 
1249
99
 
1250
100
 
1251
101
 
1252
102
 
1253
103
 
1254
104
 
1255
105
 
1256
106
 
1257
107
 
1258
108
 
1259
109
 
1260
110
 
1261
111
 
1262
112
 
1263
113
 
1264
114
 
1265
115
 
1266
116
 
1267
117
 
1268
118
 
1269
119
 
1270
120
 
1271
121
 
1272
122
 
1273
123
 
1274
124
 
1275
125
 
1276
126
 
1277
127
 
1278
128
 
1279
SELECT @tmp_tables_after = @tmp_tables_before ;
 
1280
@tmp_tables_after = @tmp_tables_before
 
1281
1
 
1282
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (a, ab) ORDER BY a;
 
1283
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1284
1       SIMPLE  t1      index   NULL    PRIMARY 4       NULL    128     Using index
 
1285
SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (a, ab) ORDER BY a;
 
1286
a
 
1287
1
 
1288
2
 
1289
3
 
1290
4
 
1291
5
 
1292
6
 
1293
7
 
1294
8
 
1295
9
 
1296
10
 
1297
11
 
1298
12
 
1299
13
 
1300
14
 
1301
15
 
1302
16
 
1303
17
 
1304
18
 
1305
19
 
1306
20
 
1307
21
 
1308
22
 
1309
23
 
1310
24
 
1311
25
 
1312
26
 
1313
27
 
1314
28
 
1315
29
 
1316
30
 
1317
31
 
1318
32
 
1319
33
 
1320
34
 
1321
35
 
1322
36
 
1323
37
 
1324
38
 
1325
39
 
1326
40
 
1327
41
 
1328
42
 
1329
43
 
1330
44
 
1331
45
 
1332
46
 
1333
47
 
1334
48
 
1335
49
 
1336
50
 
1337
51
 
1338
52
 
1339
53
 
1340
54
 
1341
55
 
1342
56
 
1343
57
 
1344
58
 
1345
59
 
1346
60
 
1347
61
 
1348
62
 
1349
63
 
1350
64
 
1351
65
 
1352
66
 
1353
67
 
1354
68
 
1355
69
 
1356
70
 
1357
71
 
1358
72
 
1359
73
 
1360
74
 
1361
75
 
1362
76
 
1363
77
 
1364
78
 
1365
79
 
1366
80
 
1367
81
 
1368
82
 
1369
83
 
1370
84
 
1371
85
 
1372
86
 
1373
87
 
1374
88
 
1375
89
 
1376
90
 
1377
91
 
1378
92
 
1379
93
 
1380
94
 
1381
95
 
1382
96
 
1383
97
 
1384
98
 
1385
99
 
1386
100
 
1387
101
 
1388
102
 
1389
103
 
1390
104
 
1391
105
 
1392
106
 
1393
107
 
1394
108
 
1395
109
 
1396
110
 
1397
111
 
1398
112
 
1399
113
 
1400
114
 
1401
115
 
1402
116
 
1403
117
 
1404
118
 
1405
119
 
1406
120
 
1407
121
 
1408
122
 
1409
123
 
1410
124
 
1411
125
 
1412
126
 
1413
127
 
1414
128
 
1415
SELECT @tmp_tables_after = @tmp_tables_before;
 
1416
@tmp_tables_after = @tmp_tables_before
 
1417
1
 
1418
DROP TABLE t1;
 
1419
#
 
1420
# Bug#31590: Wrong error message on sort buffer being too small.
 
1421
#
 
1422
create table t1(a int, b tinytext);
 
1423
insert into t1 values (1,2),(3,2);
 
1424
set session sort_buffer_size= 30000;
 
1425
Warnings:
 
1426
Warning 1292    Truncated incorrect sort_buffer_size value: '30000'
 
1427
set session max_sort_length= 2180;
 
1428
select * from t1 order by b;
 
1429
ERROR HY001: Out of sort memory; increase server sort buffer size
 
1430
drop table t1;
 
1431
CREATE TABLE t2 (a varchar(32), b int(11), c float, d double, 
 
1432
UNIQUE KEY a (a,b,c), KEY b (b), KEY c (c));
 
1433
CREATE TABLE t1 (a varchar(32), b char(3), UNIQUE KEY a (a,b), KEY b (b));
 
1434
CREATE TABLE t3 (a varchar(32), b char(3), UNIQUE KEY a (a,b));
 
1435
INSERT INTO t3 SELECT * FROM t1;
 
1436
EXPLAIN
 
1437
SELECT d FROM t1, t2
 
1438
WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE'
 
1439
ORDER BY t2.c LIMIT 1;
 
1440
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1441
1       SIMPLE  t1      ref     a,b     b       4       const   4       Using index condition; Using temporary; Using filesort
 
1442
1       SIMPLE  t2      ref     a,b,c   a       40      test.t1.a,const 11      Using index condition
 
1443
SELECT d FROM t1, t2
 
1444
WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE'
 
1445
ORDER BY t2.c LIMIT 1;
 
1446
d
 
1447
52.5
 
1448
EXPLAIN
 
1449
SELECT d FROM t3 AS t1, t2 AS t2 
 
1450
WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE'
 
1451
ORDER BY t2.c LIMIT 1;
 
1452
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1453
1       SIMPLE  t2      range   a,b,c   c       5       NULL    420     Using where; Using MRR
 
1454
1       SIMPLE  t1      ref     a       a       39      test.t2.a,const 10      Using where; Using index
 
1455
SELECT d FROM t3 AS t1, t2 AS t2 
 
1456
WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE'
 
1457
ORDER BY t2.c LIMIT 1;
 
1458
d
 
1459
52.5
 
1460
DROP TABLE t1,t2,t3;