mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
_NEW_ IN/ALL/ANY/SOME behaviour with NULL (SCRUM related)
optimization of left expression evaluation more descriptive method name
This commit is contained in:
@ -1,11 +1,95 @@
|
||||
select 1 in (1,2,3);
|
||||
1 in (1,2,3)
|
||||
1
|
||||
select 10 in (1,2,3);
|
||||
10 in (1,2,3)
|
||||
0
|
||||
select NULL in (1,2,3);
|
||||
NULL in (1,2,3)
|
||||
NULL
|
||||
select 1 in (1,NULL,3);
|
||||
1 in (1,NULL,3)
|
||||
1
|
||||
select 3 in (1,NULL,3);
|
||||
3 in (1,NULL,3)
|
||||
1
|
||||
select 10 in (1,NULL,3);
|
||||
10 in (1,NULL,3)
|
||||
NULL
|
||||
select 1.5 in (1.5,2.5,3.5);
|
||||
1.5 in (1.5,2.5,3.5)
|
||||
1
|
||||
select 10.5 in (1.5,2.5,3.5);
|
||||
10.5 in (1.5,2.5,3.5)
|
||||
0
|
||||
select NULL in (1.5,2.5,3.5);
|
||||
NULL in (1.5,2.5,3.5)
|
||||
NULL
|
||||
select 1.5 in (1.5,NULL,3.5);
|
||||
1.5 in (1.5,NULL,3.5)
|
||||
1
|
||||
select 3.5 in (1.5,NULL,3.5);
|
||||
3.5 in (1.5,NULL,3.5)
|
||||
1
|
||||
select 10.5 in (1.5,NULL,3.5);
|
||||
10.5 in (1.5,NULL,3.5)
|
||||
NULL
|
||||
drop table if exists t1;
|
||||
CREATE TABLE t1 (a int, b int, c int);
|
||||
insert into t1 values (1,2,3), (1,NULL,3);
|
||||
select 1 in (a,b,c) from t1;
|
||||
1 in (a,b,c)
|
||||
1
|
||||
1
|
||||
select 3 in (a,b,c) from t1;
|
||||
3 in (a,b,c)
|
||||
1
|
||||
1
|
||||
select 10 in (a,b,c) from t1;
|
||||
10 in (a,b,c)
|
||||
0
|
||||
NULL
|
||||
select NULL in (a,b,c) from t1;
|
||||
NULL in (a,b,c)
|
||||
NULL
|
||||
NULL
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a float, b float, c float);
|
||||
insert into t1 values (1.5,2.5,3.5), (1.5,NULL,3.5);
|
||||
select 1.5 in (a,b,c) from t1;
|
||||
1.5 in (a,b,c)
|
||||
1
|
||||
1
|
||||
select 3.5 in (a,b,c) from t1;
|
||||
3.5 in (a,b,c)
|
||||
1
|
||||
1
|
||||
select 10.5 in (a,b,c) from t1;
|
||||
10.5 in (a,b,c)
|
||||
0
|
||||
NULL
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a varchar(10), b varchar(10), c varchar(10));
|
||||
insert into t1 values ('A','BC','EFD'), ('A',NULL,'EFD');
|
||||
select 'A' in (a,b,c) from t1;
|
||||
'A' in (a,b,c)
|
||||
1
|
||||
1
|
||||
select 'EFD' in (a,b,c) from t1;
|
||||
'EFD' in (a,b,c)
|
||||
1
|
||||
1
|
||||
select 'XSFGGHF' in (a,b,c) from t1;
|
||||
'XSFGGHF' in (a,b,c)
|
||||
0
|
||||
NULL
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (field char(1));
|
||||
INSERT INTO t1 VALUES ('A'),(NULL);
|
||||
SELECT * from t1 WHERE field IN (NULL);
|
||||
field
|
||||
SELECT * from t1 WHERE field NOT IN (NULL);
|
||||
field
|
||||
A
|
||||
SELECT * from t1 where field = field;
|
||||
field
|
||||
A
|
||||
@ -16,6 +100,7 @@ NULL
|
||||
DELETE FROM t1 WHERE field NOT IN (NULL);
|
||||
SELECT * FROM t1;
|
||||
field
|
||||
A
|
||||
NULL
|
||||
drop table t1;
|
||||
create table t1 (id int(10) primary key);
|
||||
|
Reference in New Issue
Block a user