Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
ce53a3f2
Commit
ce53a3f2
authored
Jun 29, 2005
by
igor@rurik.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge rurik.mysql.com:/home/igor/mysql-4.1
into rurik.mysql.com:/home/igor/dev/mysql-4.1-0
parents
f4a30c4d
4b8f2e9b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
107 additions
and
0 deletions
+107
-0
mysql-test/r/func_str.result
mysql-test/r/func_str.result
+50
-0
mysql-test/t/func_str.test
mysql-test/t/func_str.test
+56
-0
sql/item_strfunc.h
sql/item_strfunc.h
+1
-0
No files found.
mysql-test/r/func_str.result
View file @
ce53a3f2
...
...
@@ -800,3 +800,53 @@ SELECT * FROM t1, t2 WHERE num=substring(str from 1 for 6);
str num
notnumber 0
DROP TABLE t1,t2;
CREATE TABLE t1(
id int(11) NOT NULL auto_increment,
pc int(11) NOT NULL default '0',
title varchar(20) default NULL,
PRIMARY KEY (id)
);
INSERT INTO t1 VALUES
(1, 0, 'Main'),
(2, 1, 'Toys'),
(3, 1, 'Games');
SELECT t1.id, CONCAT_WS('->', t3.title, t2.title, t1.title) as col1
FROM t1 LEFT JOIN t1 AS t2 ON t1.pc=t2.id
LEFT JOIN t1 AS t3 ON t2.pc=t3.id;
id col1
1 Main
2 Main->Toys
3 Main->Games
SELECT t1.id, CONCAT_WS('->', t3.title, t2.title, t1.title) as col1
FROM t1 LEFT JOIN t1 AS t2 ON t1.pc=t2.id
LEFT JOIN t1 AS t3 ON t2.pc=t3.id
WHERE CONCAT_WS('->', t3.title, t2.title, t1.title) LIKE '%Toys%';
id col1
2 Main->Toys
DROP TABLE t1;
CREATE TABLE t1(
trackid int(10) unsigned NOT NULL auto_increment,
trackname varchar(100) NOT NULL default '',
PRIMARY KEY (trackid)
);
CREATE TABLE t2(
artistid int(10) unsigned NOT NULL auto_increment,
artistname varchar(100) NOT NULL default '',
PRIMARY KEY (artistid)
);
CREATE TABLE t3(
trackid int(10) unsigned NOT NULL,
artistid int(10) unsigned NOT NULL,
PRIMARY KEY (trackid,artistid)
);
INSERT INTO t1 VALUES (1, 'April In Paris'), (2, 'Autumn In New York');
INSERT INTO t2 VALUES (1, 'Vernon Duke');
INSERT INTO t3 VALUES (1,1);
SELECT CONCAT_WS(' ', trackname, artistname) trackname, artistname
FROM t1 LEFT JOIN t3 ON t1.trackid=t3.trackid
LEFT JOIN t2 ON t2.artistid=t3.artistid
WHERE CONCAT_WS(' ', trackname, artistname) LIKE '%In%';
trackname artistname
April In Paris Vernon Duke Vernon Duke
Autumn In New York NULL
DROP TABLE t1,t2,t3;
mysql-test/t/func_str.test
View file @
ce53a3f2
...
...
@@ -541,3 +541,59 @@ SELECT * FROM t1, t2 WHERE num=str;
SELECT
*
FROM
t1
,
t2
WHERE
num
=
substring
(
str
from
1
for
6
);
DROP
TABLE
t1
,
t2
;
#
# Bug #11469: NOT NULL optimization wrongly used for arguments of CONCAT_WS
#
CREATE
TABLE
t1
(
id
int
(
11
)
NOT
NULL
auto_increment
,
pc
int
(
11
)
NOT
NULL
default
'0'
,
title
varchar
(
20
)
default
NULL
,
PRIMARY
KEY
(
id
)
);
INSERT
INTO
t1
VALUES
(
1
,
0
,
'Main'
),
(
2
,
1
,
'Toys'
),
(
3
,
1
,
'Games'
);
SELECT
t1
.
id
,
CONCAT_WS
(
'->'
,
t3
.
title
,
t2
.
title
,
t1
.
title
)
as
col1
FROM
t1
LEFT
JOIN
t1
AS
t2
ON
t1
.
pc
=
t2
.
id
LEFT
JOIN
t1
AS
t3
ON
t2
.
pc
=
t3
.
id
;
SELECT
t1
.
id
,
CONCAT_WS
(
'->'
,
t3
.
title
,
t2
.
title
,
t1
.
title
)
as
col1
FROM
t1
LEFT
JOIN
t1
AS
t2
ON
t1
.
pc
=
t2
.
id
LEFT
JOIN
t1
AS
t3
ON
t2
.
pc
=
t3
.
id
WHERE
CONCAT_WS
(
'->'
,
t3
.
title
,
t2
.
title
,
t1
.
title
)
LIKE
'%Toys%'
;
DROP
TABLE
t1
;
CREATE
TABLE
t1
(
trackid
int
(
10
)
unsigned
NOT
NULL
auto_increment
,
trackname
varchar
(
100
)
NOT
NULL
default
''
,
PRIMARY
KEY
(
trackid
)
);
CREATE
TABLE
t2
(
artistid
int
(
10
)
unsigned
NOT
NULL
auto_increment
,
artistname
varchar
(
100
)
NOT
NULL
default
''
,
PRIMARY
KEY
(
artistid
)
);
CREATE
TABLE
t3
(
trackid
int
(
10
)
unsigned
NOT
NULL
,
artistid
int
(
10
)
unsigned
NOT
NULL
,
PRIMARY
KEY
(
trackid
,
artistid
)
);
INSERT
INTO
t1
VALUES
(
1
,
'April In Paris'
),
(
2
,
'Autumn In New York'
);
INSERT
INTO
t2
VALUES
(
1
,
'Vernon Duke'
);
INSERT
INTO
t3
VALUES
(
1
,
1
);
SELECT
CONCAT_WS
(
' '
,
trackname
,
artistname
)
trackname
,
artistname
FROM
t1
LEFT
JOIN
t3
ON
t1
.
trackid
=
t3
.
trackid
LEFT
JOIN
t2
ON
t2
.
artistid
=
t3
.
artistid
WHERE
CONCAT_WS
(
' '
,
trackname
,
artistname
)
LIKE
'%In%'
;
DROP
TABLE
t1
,
t2
,
t3
;
sql/item_strfunc.h
View file @
ce53a3f2
...
...
@@ -95,6 +95,7 @@ public:
String
*
val_str
(
String
*
);
void
fix_length_and_dec
();
const
char
*
func_name
()
const
{
return
"concat_ws"
;
}
table_map
not_null_tables
()
const
{
return
0
;
}
};
class
Item_func_reverse
:
public
Item_str_func
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment