You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
5.1 KiB
165 lines
5.1 KiB
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));
|
|
Warnings:
|
|
Warning 1681 Integer display width is deprecated and will be removed in a future release.
|
|
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;
|
|
Warnings:
|
|
Warning 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
|
|
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;
|
|
Warnings:
|
|
Warning 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
|
|
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');
|
|
ANALYZE TABLE t1,t2;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status OK
|
|
test.t2 analyze status OK
|
|
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 partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t2 NULL index NULL PRIMARY 102 NULL # 100.00 Using index
|
|
1 SIMPLE t1 NULL eq_ref PRIMARY,a PRIMARY 318 func,const,const # 100.00 Using where
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select concat('gui_',`test`.`t2`.`a`) AS `CONCAT('gui_', t2.a)`,`test`.`t1`.`d` AS `d` from `test`.`t2` left join `test`.`t1` on(((`test`.`t1`.`a` = convert(concat('gui_',`test`.`t2`.`a`) using utf8)) and (`test`.`t1`.`b` = 'a') and (`test`.`t1`.`c` = 'b'))) where true
|
|
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;//
|
|
Warnings:
|
|
Warning 1681 Specifying number of digits for floating point data types is deprecated and will be removed in a future release.
|
|
CALL p1();
|
|
@s
|
|
########################################40100.000
|
|
CALL p1();
|
|
@s
|
|
########################################40100.000
|
|
DROP PROCEDURE p1;
|
|
# End of 5.1 tests
|
|
|