DROP TABLE IF EXISTS t1; DROP PROCEDURE IF EXISTS p1; 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 # # Bug #44743: Join in combination with concat does not always work # CREATE TABLE t1 ( a VARCHAR(100) NOT NULL DEFAULT '0', b VARCHAR(2) NOT NULL DEFAULT '', c VARCHAR(2) NOT NULL DEFAULT '', d TEXT NOT NULL, PRIMARY KEY (a, b, c), KEY (a) ) DEFAULT CHARSET=utf8; INSERT INTO t1 VALUES ('gui_A', 'a', 'b', 'str1'), ('gui_AB', 'a', 'b', 'str2'), ('gui_ABC', 'a', 'b', 'str3'); CREATE TABLE t2 ( a VARCHAR(100) NOT NULL DEFAULT '', PRIMARY KEY (a) ) DEFAULT CHARSET=latin1; INSERT INTO t2 VALUES ('A'), ('AB'), ('ABC'); SELECT CONCAT('gui_', t2.a), t1.d FROM t2 LEFT JOIN t1 ON t1.a = CONCAT('gui_', t2.a) AND t1.b = 'a' AND t1.c = 'b'; CONCAT('gui_', t2.a) d gui_A str1 gui_AB str2 gui_ABC str3 EXPLAIN SELECT CONCAT('gui_', t2.a), t1.d FROM t2 LEFT JOIN t1 ON t1.a = CONCAT('gui_', t2.a) AND t1.b = 'a' AND t1.c = 'b'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 index NULL PRIMARY 102 NULL 3 Using index 1 SIMPLE t1 eq_ref PRIMARY,a PRIMARY 318 func,const,const 1 DROP TABLE t1, t2; # # Bug #50096: CONCAT_WS inside procedure returning wrong data # CREATE PROCEDURE p1(a varchar(255), b int, c int) SET @query = CONCAT_WS(",", a, b, c); CALL p1("abcde", "0", "1234"); SELECT @query; @query abcde,0,1234 DROP PROCEDURE p1; # # Bug #40625: Concat fails on DOUBLE values in a Stored Procedure, # while DECIMAL works # CREATE PROCEDURE p1() BEGIN DECLARE v1 DOUBLE(10,3); SET v1= 100; SET @s = CONCAT('########################################', 40 , v1); SELECT @s; END;// CALL p1(); @s ########################################40100.000 CALL p1(); @s ########################################40100.000 DROP PROCEDURE p1; # End of 5.1 tests