mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	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
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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
 |