mirror of
https://github.com/MariaDB/server.git
synced 2025-05-28 13:01:41 +03:00

bmove_allign -> bmove_align Added OLAP function ROLLUP Split mysql_fix_privilege_tables to a script and a .sql data file Added new (MEMROOT*) functions to avoid calling current_thd() when creating some common objects. Added table_alias_charset, for easier --lower-case-table-name handling Better SQL_MODE handling (Setting complex options also sets sub options) New (faster) assembler string functions for x86
128 lines
4.9 KiB
Plaintext
128 lines
4.9 KiB
Plaintext
drop table if exists t1;
|
|
select null,\N,isnull(null),isnull(1/0),isnull(1/0 = null),ifnull(null,1),ifnull(null,"TRUE"),ifnull("TRUE","ERROR"),1/0 is null,1 is not null;
|
|
NULL NULL isnull(null) isnull(1/0) isnull(1/0 = null) ifnull(null,1) ifnull(null,"TRUE") ifnull("TRUE","ERROR") 1/0 is null 1 is not null
|
|
NULL NULL 1 1 1 1 TRUE TRUE 1 1
|
|
select 1 | NULL,1 & NULL,1+NULL,1-NULL;
|
|
1 | NULL 1 & NULL 1+NULL 1-NULL
|
|
NULL NULL NULL NULL
|
|
select NULL=NULL,NULL<>NULL,IFNULL(NULL,1.1)+0,IFNULL(NULL,1) | 0;
|
|
NULL=NULL NULL<>NULL IFNULL(NULL,1.1)+0 IFNULL(NULL,1) | 0
|
|
NULL NULL 1 1
|
|
select strcmp("a",NULL),(1<NULL)+0.0,NULL regexp "a",null like "a%","a%" like null;
|
|
strcmp("a",NULL) (1<NULL)+0.0 NULL regexp "a" null like "a%" "a%" like null
|
|
NULL NULL NULL NULL NULL
|
|
select concat("a",NULL),replace(NULL,"a","b"),replace("string","i",NULL),replace("string",NULL,"i"),insert("abc",1,1,NULL),left(NULL,1);
|
|
concat("a",NULL) replace(NULL,"a","b") replace("string","i",NULL) replace("string",NULL,"i") insert("abc",1,1,NULL) left(NULL,1)
|
|
NULL NULL NULL NULL NULL NULL
|
|
select repeat("a",0),repeat("ab",5+5),repeat("ab",-1),reverse(NULL);
|
|
repeat("a",0) repeat("ab",5+5) repeat("ab",-1) reverse(NULL)
|
|
abababababababababab NULL
|
|
select field(NULL,"a","b","c");
|
|
field(NULL,"a","b","c")
|
|
0
|
|
select 2 between null and 1,2 between 3 AND NULL,NULL between 1 and 2,2 between NULL and 3, 2 between 1 AND null;
|
|
2 between null and 1 2 between 3 AND NULL NULL between 1 and 2 2 between NULL and 3 2 between 1 AND null
|
|
0 0 NULL NULL NULL
|
|
SELECT NULL AND NULL, 1 AND NULL, NULL AND 1, NULL OR NULL, 0 OR NULL, NULL OR 0;
|
|
NULL AND NULL 1 AND NULL NULL AND 1 NULL OR NULL 0 OR NULL NULL OR 0
|
|
NULL NULL NULL NULL NULL NULL
|
|
SELECT (NULL OR NULL) IS NULL;
|
|
(NULL OR NULL) IS NULL
|
|
1
|
|
select NULL AND 0, 0 and NULL;
|
|
NULL AND 0 0 and NULL
|
|
0 0
|
|
select inet_ntoa(null),inet_aton(null),inet_aton("122.256"),inet_aton("122.226."),inet_aton("");
|
|
inet_ntoa(null) inet_aton(null) inet_aton("122.256") inet_aton("122.226.") inet_aton("")
|
|
NULL NULL NULL NULL NULL
|
|
create table t1 (x int);
|
|
insert into t1 values (null);
|
|
select * from t1 where x != 0;
|
|
x
|
|
drop table t1;
|
|
CREATE TABLE t1 (
|
|
indexed_field int default NULL,
|
|
KEY indexed_field (indexed_field)
|
|
);
|
|
INSERT INTO t1 VALUES (NULL),(NULL);
|
|
SELECT * FROM t1 WHERE indexed_field=NULL;
|
|
indexed_field
|
|
SELECT * FROM t1 WHERE indexed_field IS NULL;
|
|
indexed_field
|
|
NULL
|
|
NULL
|
|
SELECT * FROM t1 WHERE indexed_field<=>NULL;
|
|
indexed_field
|
|
NULL
|
|
NULL
|
|
DROP TABLE t1;
|
|
create table t1 (a int, b int) type=myisam;
|
|
insert into t1 values(20,null);
|
|
select t2.b, ifnull(t2.b,"this is null") from t1 as t2 left join t1 as t3 on
|
|
t2.b=t3.a;
|
|
b ifnull(t2.b,"this is null")
|
|
NULL this is null
|
|
select t2.b, ifnull(t2.b,"this is null") from t1 as t2 left join t1 as t3 on
|
|
t2.b=t3.a order by 1;
|
|
b ifnull(t2.b,"this is null")
|
|
NULL this is null
|
|
insert into t1 values(10,null);
|
|
select t2.b, ifnull(t2.b,"this is null") from t1 as t2 left join t1 as t3 on
|
|
t2.b=t3.a order by 1;
|
|
b ifnull(t2.b,"this is null")
|
|
NULL this is null
|
|
NULL this is null
|
|
drop table t1;
|
|
CREATE TABLE t1 (a varchar(16) NOT NULL, b smallint(6) NOT NULL, c datetime NOT NULL, d smallint(6) NOT NULL);
|
|
INSERT INTO t1 SET a = "", d= "2003-01-14 03:54:55";
|
|
UPDATE t1 SET d=1/NULL;
|
|
Warnings:
|
|
Warning 1263 Data truncated for column 'd' at row 1
|
|
UPDATE t1 SET d=NULL;
|
|
Warnings:
|
|
Warning 1261 Data truncated, NULL supplied to NOT NULL column 'd' at row 1
|
|
INSERT INTO t1 (a) values (null);
|
|
ERROR 23000: Column 'a' cannot be null
|
|
INSERT INTO t1 (a) values (1/null);
|
|
ERROR 23000: Column 'a' cannot be null
|
|
INSERT INTO t1 (a) values (null),(null);
|
|
Warnings:
|
|
Warning 1261 Data truncated, NULL supplied to NOT NULL column 'a' at row 1
|
|
Warning 1261 Data truncated, NULL supplied to NOT NULL column 'a' at row 2
|
|
INSERT INTO t1 (b) values (null);
|
|
ERROR 23000: Column 'b' cannot be null
|
|
INSERT INTO t1 (b) values (1/null);
|
|
ERROR 23000: Column 'b' cannot be null
|
|
INSERT INTO t1 (b) values (null),(null);
|
|
Warnings:
|
|
Warning 1261 Data truncated, NULL supplied to NOT NULL column 'b' at row 1
|
|
Warning 1261 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
|
|
INSERT INTO t1 (c) values (null);
|
|
ERROR 23000: Column 'c' cannot be null
|
|
INSERT INTO t1 (c) values (1/null);
|
|
ERROR 23000: Column 'c' cannot be null
|
|
INSERT INTO t1 (c) values (null),(null);
|
|
Warnings:
|
|
Warning 1261 Data truncated, NULL supplied to NOT NULL column 'c' at row 1
|
|
Warning 1261 Data truncated, NULL supplied to NOT NULL column 'c' at row 2
|
|
INSERT INTO t1 (d) values (null);
|
|
ERROR 23000: Column 'd' cannot be null
|
|
INSERT INTO t1 (d) values (1/null);
|
|
ERROR 23000: Column 'd' cannot be null
|
|
INSERT INTO t1 (d) values (null),(null);
|
|
Warnings:
|
|
Warning 1261 Data truncated, NULL supplied to NOT NULL column 'd' at row 1
|
|
Warning 1261 Data truncated, NULL supplied to NOT NULL column 'd' at row 2
|
|
select * from t1;
|
|
a b c d
|
|
0 0000-00-00 00:00:00 0
|
|
0 0000-00-00 00:00:00 0
|
|
0 0000-00-00 00:00:00 0
|
|
0 0000-00-00 00:00:00 0
|
|
0 0000-00-00 00:00:00 0
|
|
0 0000-00-00 00:00:00 0
|
|
0 0000-00-00 00:00:00 0
|
|
0 0000-00-00 00:00:00 0
|
|
0 0000-00-00 00:00:00 0
|
|
drop table t1;
|