mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	with previous rows.
The WHERE clause containing expression:
  CONCAT(empty_field1, empty_field2, ..., 'literal constant', ...)
    REGEXP 'regular expression'
may return wrong matches.
Optimization of the CONCAT function has been fixed.
		
	
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
DROP TABLE IF EXISTS t1;
 | 
						|
CREATE TABLE t1 ( number INT NOT NULL, alpha CHAR(6) NOT NULL );
 | 
						|
INSERT INTO t1 VALUES (1413006,'idlfmv'),
 | 
						|
(1413065,'smpsfz'),(1413127,'sljrhx'),(1413304,'qerfnd');
 | 
						|
SELECT number, alpha, CONCAT_WS('<---->',number,alpha) AS new
 | 
						|
FROM t1 GROUP BY number;
 | 
						|
number	alpha	new
 | 
						|
1413006	idlfmv	1413006<---->idlfmv
 | 
						|
1413065	smpsfz	1413065<---->smpsfz
 | 
						|
1413127	sljrhx	1413127<---->sljrhx
 | 
						|
1413304	qerfnd	1413304<---->qerfnd
 | 
						|
SELECT CONCAT_WS('<---->',number,alpha) AS new
 | 
						|
FROM t1 GROUP BY new LIMIT 1;
 | 
						|
new
 | 
						|
1413006<---->idlfmv
 | 
						|
SELECT number, alpha, CONCAT_WS('<->',number,alpha) AS new
 | 
						|
FROM t1 GROUP BY new LIMIT 1;
 | 
						|
number	alpha	new
 | 
						|
1413006	idlfmv	1413006<->idlfmv
 | 
						|
SELECT number, alpha, CONCAT_WS('-',number,alpha,alpha,alpha,alpha,alpha,alpha,alpha) AS new
 | 
						|
FROM t1 GROUP BY new LIMIT 1;
 | 
						|
number	alpha	new
 | 
						|
1413006	idlfmv	1413006-idlfmv-idlfmv-idlfmv-idlfmv-idlfmv-idlfmv-idlfmv
 | 
						|
SELECT number, alpha, CONCAT_WS('<------------------>',number,alpha) AS new
 | 
						|
FROM t1 GROUP BY new LIMIT 1;
 | 
						|
number	alpha	new
 | 
						|
1413006	idlfmv	1413006<------------------>idlfmv
 | 
						|
drop table t1;
 | 
						|
create table t1 (a char(4), b double, c date, d tinyint(4));
 | 
						|
insert into t1 values ('AAAA', 105, '2003-03-01', 1);
 | 
						|
select * from t1 where concat(A,C,B,D) = 'AAAA2003-03-011051';
 | 
						|
a	b	c	d
 | 
						|
AAAA	105	2003-03-01	1
 | 
						|
drop table t1;
 | 
						|
select 'a' union select concat('a', -4);
 | 
						|
a
 | 
						|
a
 | 
						|
a-4
 | 
						|
select 'a' union select concat('a', -4.5);
 | 
						|
a
 | 
						|
a
 | 
						|
a-4.5
 | 
						|
select 'a' union select concat('a', -(4 + 1));
 | 
						|
a
 | 
						|
a
 | 
						|
a-5
 | 
						|
select 'a' union select concat('a', 4 - 5);
 | 
						|
a
 | 
						|
a
 | 
						|
a-1
 | 
						|
select 'a' union select concat('a', -'3');
 | 
						|
a
 | 
						|
a
 | 
						|
a-3
 | 
						|
select 'a' union select concat('a', -concat('3',4));
 | 
						|
a
 | 
						|
a
 | 
						|
a-34
 | 
						|
select 'a' union select concat('a', -0);
 | 
						|
a
 | 
						|
a
 | 
						|
a0
 | 
						|
select 'a' union select concat('a', -0.0);
 | 
						|
a
 | 
						|
a
 | 
						|
a0.0
 | 
						|
select 'a' union select concat('a', -0.0000);
 | 
						|
a
 | 
						|
a
 | 
						|
a0.0000
 | 
						|
select concat((select x from (select 'a' as x) as t1 ),
 | 
						|
(select y from (select 'b' as y) as t2 )) from (select 1 union select 2 )
 | 
						|
as t3;
 | 
						|
concat((select x from (select 'a' as x) as t1 ),
 | 
						|
(select y from (select 'b' as y) as t2 ))
 | 
						|
ab
 | 
						|
ab
 | 
						|
create table t1(f1 varchar(6)) charset=utf8;
 | 
						|
insert into t1 values ("123456");
 | 
						|
select concat(f1, 2) a from t1 union select 'x' a from t1;
 | 
						|
a
 | 
						|
1234562
 | 
						|
x
 | 
						|
drop table t1;
 | 
						|
CREATE TABLE t1 (c1 varchar(100), c2 varchar(100));
 | 
						|
INSERT INTO t1 VALUES ('',''), ('','First'), ('Random','Random');
 | 
						|
SELECT * FROM t1 WHERE CONCAT(c1,' ',c2) REGEXP 'First.*';
 | 
						|
c1	c2
 | 
						|
	First
 | 
						|
DROP TABLE t1;
 | 
						|
# End of 5.0 tests
 |