mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 21:12:26 +01:00
ba18c0bfd9
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.
91 lines
2.3 KiB
Text
91 lines
2.3 KiB
Text
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
|