~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysql-test/r/func_in.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;
 
2
select 1 in (1,2,3);
 
3
1 in (1,2,3)
 
4
1
 
5
select 10 in (1,2,3);
 
6
10 in (1,2,3)
 
7
0
 
8
select NULL in (1,2,3);
 
9
NULL in (1,2,3)
 
10
NULL
 
11
select 1 in (1,NULL,3);
 
12
1 in (1,NULL,3)
 
13
1
 
14
select 3 in (1,NULL,3);
 
15
3 in (1,NULL,3)
 
16
1
 
17
select 10 in (1,NULL,3);
 
18
10 in (1,NULL,3)
 
19
NULL
 
20
select 1.5 in (1.5,2.5,3.5);
 
21
1.5 in (1.5,2.5,3.5)
 
22
1
 
23
select 10.5 in (1.5,2.5,3.5);
 
24
10.5 in (1.5,2.5,3.5)
 
25
0
 
26
select NULL in (1.5,2.5,3.5);
 
27
NULL in (1.5,2.5,3.5)
 
28
NULL
 
29
select 1.5 in (1.5,NULL,3.5);
 
30
1.5 in (1.5,NULL,3.5)
 
31
1
 
32
select 3.5 in (1.5,NULL,3.5);
 
33
3.5 in (1.5,NULL,3.5)
 
34
1
 
35
select 10.5 in (1.5,NULL,3.5);
 
36
10.5 in (1.5,NULL,3.5)
 
37
NULL
 
38
CREATE TABLE t1 (a int, b int, c int);
 
39
insert into t1 values (1,2,3), (1,NULL,3);
 
40
select 1 in (a,b,c) from t1;
 
41
1 in (a,b,c)
 
42
1
 
43
1
 
44
select 3 in (a,b,c) from t1;
 
45
3 in (a,b,c)
 
46
1
 
47
1
 
48
select 10 in (a,b,c) from t1;
 
49
10 in (a,b,c)
 
50
0
 
51
NULL
 
52
select NULL in (a,b,c) from t1;
 
53
NULL in (a,b,c)
 
54
NULL
 
55
NULL
 
56
drop table t1;
 
57
CREATE TABLE t1 (a float, b float, c float);
 
58
insert into t1 values (1.5,2.5,3.5), (1.5,NULL,3.5);
 
59
select 1.5 in (a,b,c) from t1;
 
60
1.5 in (a,b,c)
 
61
1
 
62
1
 
63
select 3.5 in (a,b,c) from t1;
 
64
3.5 in (a,b,c)
 
65
1
 
66
1
 
67
select 10.5 in (a,b,c) from t1;
 
68
10.5 in (a,b,c)
 
69
0
 
70
NULL
 
71
drop table t1;
 
72
CREATE TABLE t1 (a varchar(10), b varchar(10), c varchar(10));
 
73
insert into t1 values ('A','BC','EFD'), ('A',NULL,'EFD');
 
74
select 'A' in (a,b,c) from t1;
 
75
'A' in (a,b,c)
 
76
1
 
77
1
 
78
select 'EFD' in (a,b,c) from t1;
 
79
'EFD' in (a,b,c)
 
80
1
 
81
1
 
82
select 'XSFGGHF' in (a,b,c) from t1;
 
83
'XSFGGHF' in (a,b,c)
 
84
0
 
85
NULL
 
86
drop table t1;
 
87
CREATE TABLE t1 (field char(1));
 
88
INSERT INTO t1 VALUES ('A'),(NULL);
 
89
SELECT * from t1 WHERE field IN (NULL);
 
90
field
 
91
SELECT * from t1 WHERE field NOT IN (NULL);
 
92
field
 
93
SELECT * from t1 where field = field;
 
94
field
 
95
A
 
96
SELECT * from t1 where field <=> field;
 
97
field
 
98
A
 
99
NULL
 
100
DELETE FROM t1 WHERE field NOT IN (NULL);
 
101
SELECT * FROM t1;
 
102
field
 
103
A
 
104
NULL
 
105
drop table t1;
 
106
create table t1 (id int(10) primary key);
 
107
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9);
 
108
select * from t1 where id in (2,5,9);
 
109
id
 
110
2
 
111
5
 
112
9
 
113
drop table t1;
 
114
create table t1 (
 
115
a char(1) character set latin1 collate latin1_general_ci,
 
116
b char(1) character set latin1 collate latin1_swedish_ci,
 
117
c char(1) character set latin1 collate latin1_danish_ci
 
118
);
 
119
insert into t1 values ('A','B','C');
 
120
insert into t1 values ('a','c','c');
 
121
select * from t1 where a in (b);
 
122
ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='
 
123
select * from t1 where a in (b,c);
 
124
ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT), (latin1_swedish_ci,IMPLICIT), (latin1_danish_ci,IMPLICIT) for operation ' IN '
 
125
select * from t1 where 'a' in (a,b,c);
 
126
ERROR HY000: Illegal mix of collations for operation ' IN '
 
127
select * from t1 where 'a' in (a);
 
128
a       b       c
 
129
A       B       C
 
130
a       c       c
 
131
select * from t1 where a in ('a');
 
132
a       b       c
 
133
A       B       C
 
134
a       c       c
 
135
select * from t1 where 'a' collate latin1_general_ci in (a,b,c);
 
136
a       b       c
 
137
A       B       C
 
138
a       c       c
 
139
select * from t1 where 'a' collate latin1_bin in (a,b,c);
 
140
a       b       c
 
141
a       c       c
 
142
select * from t1 where 'a' in (a,b,c collate latin1_bin);
 
143
a       b       c
 
144
a       c       c
 
145
explain extended select * from t1 where 'a' in (a,b,c collate latin1_bin);
 
146
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
147
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
148
Warnings:
 
149
Note    1003    select "test"."t1"."a" AS "a","test"."t1"."b" AS "b","test"."t1"."c" AS "c" from "test"."t1" where ('a' in ("test"."t1"."a","test"."t1"."b",("test"."t1"."c" collate latin1_bin)))
 
150
drop table t1;
 
151
set names utf8;
 
152
create table t1 (a char(10) character set utf8 not null);
 
153
insert into t1 values ('bbbb'),(_koi8r'����'),(_latin1'����');
 
154
select a from t1 where a in ('bbbb',_koi8r'����',_latin1'����') order by a;
 
155
a
 
156
Ă„Ă„Ă„Ă„
 
157
bbbb
 
158
цццц
 
159
drop table t1;
 
160
create table t1 (a char(10) character set latin1 not null);
 
161
insert into t1 values ('a'),('b'),('c');
 
162
select a from t1 where a IN ('a','b','c') order by a;
 
163
a
 
164
a
 
165
b
 
166
c
 
167
drop table t1;
 
168
set names latin1;
 
169
select '1.0' in (1,2);
 
170
'1.0' in (1,2)
 
171
1
 
172
select 1 in ('1.0',2);
 
173
1 in ('1.0',2)
 
174
1
 
175
select 1 in (1,'2.0');
 
176
1 in (1,'2.0')
 
177
1
 
178
select 1 in ('1.0',2.0);
 
179
1 in ('1.0',2.0)
 
180
1
 
181
select 1 in (1.0,'2.0');
 
182
1 in (1.0,'2.0')
 
183
1
 
184
select 1 in ('1.1',2);
 
185
1 in ('1.1',2)
 
186
0
 
187
select 1 in ('1.1',2.0);
 
188
1 in ('1.1',2.0)
 
189
0
 
190
create table t1 (a char(2) character set binary);
 
191
insert into t1 values ('aa'), ('bb');
 
192
select * from t1 where a in (NULL, 'aa');
 
193
a
 
194
aa
 
195
drop table t1;
 
196
create table t1 (id int, key(id));
 
197
insert into t1 values (1),(2),(3);
 
198
select count(*) from t1 where id not in (1);
 
199
count(*)
 
200
2
 
201
select count(*) from t1 where id not in (1,2);
 
202
count(*)
 
203
1
 
204
drop table t1;
 
205
DROP TABLE IF EXISTS t1;
 
206
CREATE TABLE t1 SELECT 1 IN (2, NULL);
 
207
SELECT should return NULL.
 
208
SELECT * FROM t1;
 
209
1 IN (2, NULL)
 
210
NULL
 
211
DROP TABLE t1;
 
212
End of 4.1 tests
 
213
CREATE TABLE t1 (a int PRIMARY KEY);
 
214
INSERT INTO t1 VALUES (44), (45), (46);
 
215
SELECT * FROM t1 WHERE a IN (45);
 
216
a
 
217
45
 
218
SELECT * FROM t1 WHERE a NOT IN (0, 45);
 
219
a
 
220
44
 
221
46
 
222
SELECT * FROM t1 WHERE a NOT IN (45);
 
223
a
 
224
44
 
225
46
 
226
DROP TABLE t1;
 
227
create table t1 (a int);
 
228
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
 
229
create table t2 (a int, filler char(200), key(a));
 
230
insert into t2 select C.a*2,   'no'  from t1 A, t1 B, t1 C;
 
231
insert into t2 select C.a*2+1, 'yes' from t1 C;
 
232
explain 
 
233
select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
 
234
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
235
1       SIMPLE  t2      range   a       a       5       NULL    12      Using index condition; Using MRR
 
236
select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
 
237
a       filler
 
238
1       yes
 
239
3       yes
 
240
5       yes
 
241
7       yes
 
242
9       yes
 
243
11      yes
 
244
13      yes
 
245
15      yes
 
246
17      yes
 
247
19      yes
 
248
explain select * from t2 force index(a) where a NOT IN (2,2,2,2,2,2);
 
249
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
250
1       SIMPLE  t2      range   a       a       5       NULL    912     Using index condition; Using MRR
 
251
explain select * from t2 force index(a) where a <> 2;
 
252
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
253
1       SIMPLE  t2      range   a       a       5       NULL    912     Using index condition; Using MRR
 
254
drop table t2;
 
255
create table t2 (a datetime, filler char(200), key(a));
 
256
insert into t2 select '2006-04-25 10:00:00' + interval C.a minute,
 
257
'no'  from t1 A, t1 B, t1 C where C.a % 2 = 0;
 
258
insert into t2 select '2006-04-25 10:00:00' + interval C.a*2+1 minute,
 
259
'yes' from t1 C;
 
260
explain 
 
261
select * from t2 where a NOT IN (
 
262
'2006-04-25 10:00:00','2006-04-25 10:02:00','2006-04-25 10:04:00', 
 
263
'2006-04-25 10:06:00', '2006-04-25 10:08:00');
 
264
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
265
1       SIMPLE  t2      range   a       a       9       NULL    18      Using index condition; Using MRR
 
266
select * from t2 where a NOT IN (
 
267
'2006-04-25 10:00:00','2006-04-25 10:02:00','2006-04-25 10:04:00', 
 
268
'2006-04-25 10:06:00', '2006-04-25 10:08:00');
 
269
a       filler
 
270
2006-04-25 10:01:00     yes
 
271
2006-04-25 10:03:00     yes
 
272
2006-04-25 10:05:00     yes
 
273
2006-04-25 10:07:00     yes
 
274
2006-04-25 10:09:00     yes
 
275
2006-04-25 10:11:00     yes
 
276
2006-04-25 10:13:00     yes
 
277
2006-04-25 10:15:00     yes
 
278
2006-04-25 10:17:00     yes
 
279
2006-04-25 10:19:00     yes
 
280
drop table t2;
 
281
create table t2 (a varchar(10), filler char(200), key(a));
 
282
insert into t2 select 'foo', 'no' from t1 A, t1 B;
 
283
insert into t2 select 'barbar', 'no' from t1 A, t1 B;
 
284
insert into t2 select 'bazbazbaz', 'no' from t1 A, t1 B;
 
285
insert into t2 values ('fon', '1'), ('fop','1'), ('barbaq','1'), 
 
286
('barbas','1'), ('bazbazbay', '1'),('zz','1');
 
287
explain select * from t2 where a not in('foo','barbar', 'bazbazbaz');
 
288
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
289
1       SIMPLE  t2      range   a       a       13      NULL    7       Using index condition; Using MRR
 
290
drop table t2;
 
291
create table t2 (a decimal(10,5), filler char(200), key(a));
 
292
insert into t2 select 345.67890, 'no' from t1 A, t1 B;
 
293
insert into t2 select 43245.34, 'no' from t1 A, t1 B;
 
294
insert into t2 select 64224.56344, 'no' from t1 A, t1 B;
 
295
insert into t2 values (0, '1'), (22334.123,'1'), (33333,'1'), 
 
296
(55555,'1'), (77777, '1');
 
297
explain
 
298
select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
 
299
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
300
1       SIMPLE  t2      range   a       a       7       NULL    7       Using index condition; Using MRR
 
301
select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
 
302
a       filler
 
303
0.00000 1
 
304
22334.12300     1
 
305
33333.00000     1
 
306
55555.00000     1
 
307
77777.00000     1
 
308
drop table t2;
 
309
create table t2 (a int, key(a), b int);
 
310
insert into t2 values (1,1),(2,2);
 
311
set @cnt= 1;
 
312
set @str="update t2 set b=1 where a not in (";
 
313
select count(*) from (
 
314
select @str:=concat(@str, @cnt:=@cnt+1, ",") 
 
315
from t1 A, t1 B, t1 C, t1 D) Z;
 
316
count(*)
 
317
10000
 
318
set @str:=concat(@str, "10000)");
 
319
select substr(@str, 1, 50);
 
320
substr(@str, 1, 50)
 
321
update t2 set b=1 where a not in (2,3,4,5,6,7,8,9,
 
322
set @str=NULL;
 
323
drop table t2;
 
324
drop table t1;
 
325
create table t1 (
 
326
some_id smallint(5) unsigned,
 
327
key (some_id)
 
328
);
 
329
insert into t1 values (1),(2);
 
330
select some_id from t1 where some_id not in(2,-1);
 
331
some_id
 
332
1
 
333
select some_id from t1 where some_id not in(-4,-1,-4);
 
334
some_id
 
335
1
 
336
2
 
337
select some_id from t1 where some_id not in(-4,-1,3423534,2342342);
 
338
some_id
 
339
1
 
340
2
 
341
select some_id from t1 where some_id not in('-1', '0');
 
342
some_id
 
343
1
 
344
2
 
345
drop table t1;
 
346
CREATE TABLE t1 (a int, b int, PRIMARY KEY (a));
 
347
INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1),(5,1),(6,1);
 
348
CREATE TABLE t2 (a int, b int, PRIMARY KEY (a));
 
349
INSERT INTO t2 VALUES (3,2),(4,2),(100,100),(101,201),(102,102);
 
350
CREATE TABLE t3 (a int PRIMARY KEY);
 
351
INSERT INTO t3 VALUES (1),(2),(3),(4);
 
352
CREATE TABLE t4 (a int PRIMARY KEY,b int);
 
353
INSERT INTO t4 VALUES (1,1),(2,2),(1000,1000),(1001,1001),(1002,1002),
 
354
(1003,1003),(1004,1004);
 
355
EXPLAIN SELECT STRAIGHT_JOIN * FROM t3 
 
356
JOIN t1 ON t3.a=t1.a 
 
357
JOIN t2 ON t3.a=t2.a
 
358
JOIN t4 WHERE t4.a IN (t1.b, t2.b);
 
359
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
360
1       SIMPLE  t3      index   PRIMARY PRIMARY 4       NULL    4       Using index
 
361
1       SIMPLE  t1      eq_ref  PRIMARY PRIMARY 4       test.t3.a       1       
 
362
1       SIMPLE  t2      eq_ref  PRIMARY PRIMARY 4       test.t3.a       1       
 
363
1       SIMPLE  t4      ALL     PRIMARY NULL    NULL    NULL    7       Range checked for each record (index map: 0x1)
 
364
SELECT STRAIGHT_JOIN * FROM t3 
 
365
JOIN t1 ON t3.a=t1.a 
 
366
JOIN t2 ON t3.a=t2.a
 
367
JOIN t4 WHERE t4.a IN (t1.b, t2.b);
 
368
a       a       b       a       b       a       b
 
369
3       3       1       3       2       1       1
 
370
3       3       1       3       2       2       2
 
371
4       4       1       4       2       1       1
 
372
4       4       1       4       2       2       2
 
373
EXPLAIN SELECT STRAIGHT_JOIN 
 
374
(SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b)) 
 
375
FROM t3, t1, t2
 
376
WHERE t3.a=t1.a AND t3.a=t2.a;
 
377
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
378
1       PRIMARY t3      index   PRIMARY PRIMARY 4       NULL    4       Using index
 
379
1       PRIMARY t1      eq_ref  PRIMARY PRIMARY 4       test.t3.a       1       
 
380
1       PRIMARY t2      eq_ref  PRIMARY PRIMARY 4       test.t3.a       1       
 
381
2       DEPENDENT SUBQUERY      t4      index   NULL    PRIMARY 4       NULL    7       Using where; Using index
 
382
SELECT STRAIGHT_JOIN 
 
383
(SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b)) 
 
384
FROM t3, t1, t2
 
385
WHERE t3.a=t1.a AND t3.a=t2.a;
 
386
(SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b))
 
387
3
 
388
3
 
389
DROP TABLE t1,t2,t3,t4;
 
390
CREATE TABLE t1(a BIGINT UNSIGNED);
 
391
INSERT INTO t1 VALUES (0xFFFFFFFFFFFFFFFF);
 
392
SELECT * FROM t1 WHERE a=-1 OR a=-2 ;
 
393
a
 
394
SELECT * FROM t1 WHERE a IN (-1, -2);
 
395
a
 
396
CREATE TABLE t2 (a BIGINT UNSIGNED);
 
397
insert into t2 values(13491727406643098568),
 
398
(0x7fffffefffffffff),
 
399
(0x7ffffffeffffffff),
 
400
(0x7fffffffefffffff),
 
401
(0x7ffffffffeffffff),
 
402
(0x7fffffffffefffff),
 
403
(0x7ffffffffffeffff),
 
404
(0x7fffffffffffefff),
 
405
(0x7ffffffffffffeff),
 
406
(0x7fffffffffffffef),
 
407
(0x7ffffffffffffffe),
 
408
(0x7fffffffffffffff),
 
409
(0x8000000000000000),
 
410
(0x8000000000000001),
 
411
(0x8000000000000002),
 
412
(0x8000000000000300),
 
413
(0x8000000000000400),
 
414
(0x8000000000000401),
 
415
(0x8000000000004001),
 
416
(0x8000000000040001),
 
417
(0x8000000000400001),
 
418
(0x8000000004000001),
 
419
(0x8000000040000001),
 
420
(0x8000000400000001),
 
421
(0x8000004000000001),
 
422
(0x8000040000000001);
 
423
SELECT HEX(a) FROM t2 WHERE a IN 
 
424
(CAST(0xBB3C3E98175D33C8 AS UNSIGNED),
 
425
42);
 
426
HEX(a)
 
427
BB3C3E98175D33C8
 
428
SELECT HEX(a) FROM t2 WHERE a IN
 
429
(CAST(0xBB3C3E98175D33C8 AS UNSIGNED),
 
430
CAST(0x7fffffffffffffff AS UNSIGNED),
 
431
CAST(0x8000000000000000 AS UNSIGNED),
 
432
CAST(0x8000000000000400 AS UNSIGNED),
 
433
CAST(0x8000000000000401 AS UNSIGNED),
 
434
42);
 
435
HEX(a)
 
436
BB3C3E98175D33C8
 
437
7FFFFFFFFFFFFFFF
 
438
8000000000000000
 
439
8000000000000400
 
440
8000000000000401
 
441
SELECT HEX(a) FROM t2 WHERE a IN 
 
442
(CAST(0x7fffffffffffffff AS UNSIGNED), 
 
443
CAST(0x8000000000000001 AS UNSIGNED));
 
444
HEX(a)
 
445
7FFFFFFFFFFFFFFF
 
446
8000000000000001
 
447
SELECT HEX(a) FROM t2 WHERE a IN 
 
448
(CAST(0x7ffffffffffffffe AS UNSIGNED), 
 
449
CAST(0x7fffffffffffffff AS UNSIGNED));
 
450
HEX(a)
 
451
7FFFFFFFFFFFFFFE
 
452
7FFFFFFFFFFFFFFF
 
453
SELECT HEX(a) FROM t2 WHERE a IN 
 
454
(0x7ffffffffffffffe, 
 
455
0x7fffffffffffffff,
 
456
'abc');
 
457
HEX(a)
 
458
7FFFFFFFFFFFFFFE
 
459
7FFFFFFFFFFFFFFF
 
460
CREATE TABLE t3 (a BIGINT UNSIGNED);
 
461
INSERT INTO t3 VALUES (9223372036854775551);
 
462
SELECT HEX(a) FROM t3 WHERE a IN (9223372036854775807, 42);
 
463
HEX(a)
 
464
CREATE TABLE t4 (a DATE);
 
465
INSERT INTO t4 VALUES ('1972-02-06'), ('1972-07-29');
 
466
SELECT * FROM t4 WHERE a IN ('1972-02-06','19772-07-29');
 
467
a
 
468
1972-02-06
 
469
Warnings:
 
470
Warning 1292    Incorrect date value: '19772-07-29' for column 'a' at row 1
 
471
DROP TABLE t1,t2,t3,t4;
 
472
CREATE TABLE t1 (id int not null);
 
473
INSERT INTO t1 VALUES (1),(2);
 
474
SELECT id FROM t1 WHERE id IN(4564, (SELECT IF(1=0,1,1/0)) );
 
475
id
 
476
DROP TABLE t1;
 
477
End of 5.0 tests
 
478
create table t1(f1 char(1));
 
479
insert into t1 values ('a'),('b'),('1');
 
480
select f1 from t1 where f1 in ('a',1);
 
481
f1
 
482
a
 
483
1
 
484
Warnings:
 
485
Warning 1292    Truncated incorrect DOUBLE value: 'b'
 
486
select f1, case f1 when 'a' then '+' when 1 then '-' end from t1;
 
487
f1      case f1 when 'a' then '+' when 1 then '-' end 
 
488
a       +
 
489
b       NULL
 
490
1       -
 
491
Warnings:
 
492
Warning 1292    Truncated incorrect DOUBLE value: 'b'
 
493
create index t1f1_idx on t1(f1);
 
494
select f1 from t1 where f1 in ('a',1);
 
495
f1
 
496
1
 
497
a
 
498
Warnings:
 
499
Warning 1292    Truncated incorrect DOUBLE value: 'b'
 
500
explain select f1 from t1 where f1 in ('a',1);
 
501
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
502
1       SIMPLE  t1      index   t1f1_idx        t1f1_idx        2       NULL    3       Using where; Using index
 
503
select f1 from t1 where f1 in ('a','b');
 
504
f1
 
505
a
 
506
b
 
507
explain select f1 from t1 where f1 in ('a','b');
 
508
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
509
1       SIMPLE  t1      index   t1f1_idx        t1f1_idx        2       NULL    3       Using where; Using index
 
510
select f1 from t1 where f1 in (2,1);
 
511
f1
 
512
1
 
513
Warnings:
 
514
Warning 1292    Truncated incorrect DOUBLE value: 'a'
 
515
Warning 1292    Truncated incorrect DOUBLE value: 'b'
 
516
explain select f1 from t1 where f1 in (2,1);
 
517
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
518
1       SIMPLE  t1      index   t1f1_idx        t1f1_idx        2       NULL    3       Using where; Using index
 
519
create table t2(f2 int, index t2f2(f2));
 
520
insert into t2 values(0),(1),(2);
 
521
select f2 from t2 where f2 in ('a',2);
 
522
f2
 
523
0
 
524
2
 
525
Warnings:
 
526
Warning 1292    Truncated incorrect DOUBLE value: 'a'
 
527
Warning 1292    Truncated incorrect DOUBLE value: 'a'
 
528
Warning 1292    Truncated incorrect DOUBLE value: 'a'
 
529
explain select f2 from t2 where f2 in ('a',2);
 
530
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
531
1       SIMPLE  t2      index   t2f2    t2f2    5       NULL    3       Using where; Using index
 
532
select f2 from t2 where f2 in ('a','b');
 
533
f2
 
534
0
 
535
Warnings:
 
536
Warning 1292    Truncated incorrect DOUBLE value: 'a'
 
537
Warning 1292    Truncated incorrect DOUBLE value: 'b'
 
538
explain select f2 from t2 where f2 in ('a','b');
 
539
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
540
1       SIMPLE  t2      index   t2f2    t2f2    5       NULL    3       Using where; Using index
 
541
Warnings:
 
542
Warning 1292    Truncated incorrect DOUBLE value: 'a'
 
543
Warning 1292    Truncated incorrect DOUBLE value: 'b'
 
544
select f2 from t2 where f2 in (1,'b');
 
545
f2
 
546
0
 
547
1
 
548
Warnings:
 
549
Warning 1292    Truncated incorrect DOUBLE value: 'b'
 
550
Warning 1292    Truncated incorrect DOUBLE value: 'b'
 
551
explain select f2 from t2 where f2 in (1,'b');
 
552
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
553
1       SIMPLE  t2      index   t2f2    t2f2    5       NULL    3       Using where; Using index
 
554
drop table t1, t2;
 
555
create table t1 (a time, key(a));
 
556
insert into t1 values (),(),(),(),(),(),(),(),(),();
 
557
select a from t1 where a not in (a,a,a) group by a;
 
558
a
 
559
drop table t1;
 
560
End of 5.1 tests