mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
f095274fe8
BitKeeper/etc/ignore: auto-union BitKeeper/etc/logging_ok: auto-union BitKeeper/triggers/post-commit: Auto merged Docs/Support/texi2html: Auto merged Makefile.am: Auto merged client/Makefile.am: Auto merged client/mysql.cc: Auto merged client/mysqldump.c: Auto merged include/my_base.h: Auto merged include/my_global.h: Auto merged include/my_pthread.h: Auto merged include/my_sys.h: Auto merged include/my_time.h: Auto merged include/mysql.h: Auto merged include/mysql_com.h: Auto merged innobase/buf/buf0buf.c: Auto merged innobase/include/row0mysql.h: Auto merged innobase/row/row0sel.c: Auto merged libmysql/libmysql.c: Auto merged libmysqld/examples/Makefile.am: Auto merged myisam/mi_check.c: Auto merged mysql-test/include/ps_modify.inc: Auto merged mysql-test/install_test_db.sh: Auto merged mysql-test/r/alter_table.result: Auto merged mysql-test/r/auto_increment.result: Auto merged mysql-test/r/bdb.result: Auto merged mysql-test/r/ctype_latin1_de.result: Auto merged mysql-test/r/ctype_recoding.result: Auto merged mysql-test/r/fulltext.result: Auto merged mysql-test/r/func_gconcat.result: Auto merged mysql-test/r/func_group.result: Auto merged mysql-test/r/func_if.result: Auto merged mysql-test/t/derived.test: Auto merged mysql-test/t/insert.test: merge with 4.1 Fixed test case to not use 'if exists' when it shouldn't mysql-test/t/range.test: merge with 4.1 Added missing drop table sql/ha_ndbcluster.cc: merge with 4.1 Simple optimization: use max() instead of ? : sql/item_func.cc: merge with 4.1 (Added back old variable names for easier merges) sql/opt_range.cc: merge with 4.1 Removed argument 'parent_alloc' from QUICK_RANGE_SELECT as this was not used Added assert if using QUICK_GROUP_MIN_MAX_SELECT with parent_alloc as the init() function can't handle this Changed back get_quick_select_for_ref() to use it's own alloc root becasue this function may be called several times for one query sql/sql_handler.cc: merge with 4.1 change variable 'err' to 'error' as same function had a label named 'err' sql/sql_update.cc: Use multi-update code from 5.0 instead of 4.1 We will fix the locking code shortly in 5.0 to be faster than in 4.1
88 lines
2.4 KiB
Text
88 lines
2.4 KiB
Text
drop table if exists t1;
|
|
select IF(0,"ERROR","this"),IF(1,"is","ERROR"),IF(NULL,"ERROR","a"),IF(1,2,3)|0,IF(1,2.0,3.0)+0 ;
|
|
IF(0,"ERROR","this") IF(1,"is","ERROR") IF(NULL,"ERROR","a") IF(1,2,3)|0 IF(1,2.0,3.0)+0
|
|
this is a 2 2.0
|
|
CREATE TABLE t1 (st varchar(255) NOT NULL, u int(11) NOT NULL) ENGINE=MyISAM;
|
|
INSERT INTO t1 VALUES ('a',1),('A',1),('aa',1),('AA',1),('a',1),('aaa',0),('BBB',0);
|
|
select if(1,st,st) s from t1 order by s;
|
|
s
|
|
a
|
|
A
|
|
a
|
|
aa
|
|
AA
|
|
aaa
|
|
BBB
|
|
select if(u=1,st,st) s from t1 order by s;
|
|
s
|
|
a
|
|
A
|
|
a
|
|
aa
|
|
AA
|
|
aaa
|
|
BBB
|
|
select if(u=1,binary st,st) s from t1 order by s;
|
|
s
|
|
A
|
|
AA
|
|
BBB
|
|
a
|
|
a
|
|
aa
|
|
aaa
|
|
select if(u=1,st,binary st) s from t1 where st like "%a%" order by s;
|
|
s
|
|
A
|
|
AA
|
|
a
|
|
a
|
|
aa
|
|
aaa
|
|
explain extended select if(u=1,st,binary st) s from t1 where st like "%a%" order by s;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where; Using filesort
|
|
Warnings:
|
|
Note 1003 select if((`test`.`t1`.`u` = 1),`test`.`t1`.`st`,cast(`test`.`t1`.`st` as char charset binary)) AS `s` from `test`.`t1` where (`test`.`t1`.`st` like _latin1'%a%') order by if((`test`.`t1`.`u` = 1),`test`.`t1`.`st`,cast(`test`.`t1`.`st` as char charset binary))
|
|
select nullif(u=0, 'test') from t1;
|
|
nullif(u=0, 'test')
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
1
|
|
1
|
|
explain extended select nullif(u=0, 'test') from t1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 7
|
|
Warnings:
|
|
Note 1003 select nullif((`test`.`t1`.`u` = 0),_latin1'test') AS `nullif(u=0, 'test')` from `test`.`t1`
|
|
drop table t1;
|
|
select NULLIF(NULL,NULL), NULLIF(NULL,1), NULLIF(NULL,1.0), NULLIF(NULL,"test");
|
|
NULLIF(NULL,NULL) NULLIF(NULL,1) NULLIF(NULL,1.0) NULLIF(NULL,"test")
|
|
NULL NULL NULL NULL
|
|
select NULLIF(1,NULL), NULLIF(1.0, NULL), NULLIF("test", NULL);
|
|
NULLIF(1,NULL) NULLIF(1.0, NULL) NULLIF("test", NULL)
|
|
1 1.0 test
|
|
create table t1 (num double(12,2));
|
|
insert into t1 values (144.54);
|
|
select sum(if(num is null,0.00,num)) from t1;
|
|
sum(if(num is null,0.00,num))
|
|
144.54
|
|
drop table t1;
|
|
create table t1 (x int, y int);
|
|
insert into t1 values (0,6),(10,16),(20,26),(30,10),(40,46),(50,56);
|
|
select min(if(y -x > 5,y,NULL)), max(if(y - x > 5,y,NULL)) from t1;
|
|
min(if(y -x > 5,y,NULL)) max(if(y - x > 5,y,NULL))
|
|
6 56
|
|
drop table t1;
|
|
create table t1 (a int);
|
|
insert t1 values (1),(2);
|
|
select if(1>2,a,avg(a)) from t1;
|
|
if(1>2,a,avg(a))
|
|
1.5000
|
|
drop table t1;
|
|
SELECT NULLIF(5,5) IS NULL, NULLIF(5,5) IS NOT NULL;
|
|
NULLIF(5,5) IS NULL NULLIF(5,5) IS NOT NULL
|
|
1 0
|