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
db896a66
Commit
db896a66
authored
Sep 15, 2005
by
serg@serg.mylan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bad merge fixed
parent
233f6d99
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
360 additions
and
28 deletions
+360
-28
mysql-test/r/distinct.result
mysql-test/r/distinct.result
+0
-8
mysql-test/r/insert_select.result
mysql-test/r/insert_select.result
+0
-10
mysql-test/t/distinct.test
mysql-test/t/distinct.test
+360
-0
mysql-test/t/insert_select.test
mysql-test/t/insert_select.test
+0
-10
No files found.
mysql-test/r/distinct.result
View file @
db896a66
...
...
@@ -464,14 +464,6 @@ SELECT DISTINCT html,SUM(rout)/(SUM(rin)+1) as 'prod' FROM t1 GROUP BY rin;
html prod
1 0.0000
drop table t1;
create table t1 (id int, dsc varchar(50));
insert into t1 values (1, "line number one"), (2, "line number two"), (3, "line number three");
select distinct id, IFNULL(dsc, '-') from t1;
id IFNULL(dsc, '-')
1 line number one
2 line number two
3 line number three
drop table t1;
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (1),(2),(3),(4),(5);
SELECT DISTINCT a, 1 FROM t1;
...
...
mysql-test/r/insert_select.result
View file @
db896a66
...
...
@@ -668,13 +668,3 @@ ERROR 42S22: Unknown column 't2.a' in 'field list'
insert into t1 select t2.a from t2 group by t2.a on duplicate key update a= t1.a + t2.b;
ERROR 42S22: Unknown column 't2.b' in 'field list'
drop table t1,t2,t3;
create table t1(f1 varchar(5) key);
insert into t1(f1) select if(max(f1) is null, '2000',max(f1)+1) from t1;
insert into t1(f1) select if(max(f1) is null, '2000',max(f1)+1) from t1;
insert into t1(f1) select if(max(f1) is null, '2000',max(f1)+1) from t1;
select * from t1;
f1
2000
2001
2002
drop table t1;
mysql-test/t/distinct.test
View file @
db896a66
#
# Bug with distinct and INSERT INTO
# Bug with group by and not used fields
#
--
disable_warnings
drop
table
if
exists
t1
,
t2
,
t3
;
--
enable_warnings
CREATE
TABLE
t1
(
id
int
,
facility
char
(
20
));
CREATE
TABLE
t2
(
facility
char
(
20
));
INSERT
INTO
t1
VALUES
(
NULL
,
NULL
);
INSERT
INTO
t1
VALUES
(
-
1
,
''
);
INSERT
INTO
t1
VALUES
(
0
,
''
);
INSERT
INTO
t1
VALUES
(
1
,
'/L'
);
INSERT
INTO
t1
VALUES
(
2
,
'A01'
);
INSERT
INTO
t1
VALUES
(
3
,
'ANC'
);
INSERT
INTO
t1
VALUES
(
4
,
'F01'
);
INSERT
INTO
t1
VALUES
(
5
,
'FBX'
);
INSERT
INTO
t1
VALUES
(
6
,
'MT'
);
INSERT
INTO
t1
VALUES
(
7
,
'P'
);
INSERT
INTO
t1
VALUES
(
8
,
'RV'
);
INSERT
INTO
t1
VALUES
(
9
,
'SRV'
);
INSERT
INTO
t1
VALUES
(
10
,
'VMT'
);
INSERT
INTO
t2
SELECT
DISTINCT
FACILITY
FROM
t1
;
select
id
from
t1
group
by
id
;
select
*
from
t1
order
by
id
;
select
id
-
5
,
facility
from
t1
order
by
"id-5"
;
select
id
,
concat
(
facility
)
from
t1
group
by
id
;
select
id
+
0
as
a
,
max
(
id
),
concat
(
facility
)
as
b
from
t1
group
by
a
order
by
b
desc
,
a
;
select
id
>=
0
and
id
<=
5
as
grp
,
count
(
*
)
from
t1
group
by
grp
;
SELECT
DISTINCT
FACILITY
FROM
t1
;
SELECT
FACILITY
FROM
t2
;
SELECT
count
(
*
)
from
t1
,
t2
where
t1
.
facility
=
t2
.
facility
;
select
count
(
facility
)
from
t1
;
select
count
(
*
)
from
t1
;
select
count
(
*
)
from
t1
where
facility
IS
NULL
;
select
count
(
*
)
from
t1
where
facility
=
NULL
;
select
count
(
*
)
from
t1
where
facility
IS
NOT
NULL
;
select
count
(
*
)
from
t1
where
id
IS
NULL
;
select
count
(
*
)
from
t1
where
id
IS
NOT
NULL
;
drop
table
t1
,
t2
;
#
# Problem with distinct without results
#
CREATE
TABLE
t1
(
UserId
int
(
11
)
DEFAULT
'0'
NOT
NULL
);
INSERT
INTO
t1
VALUES
(
20
);
INSERT
INTO
t1
VALUES
(
27
);
SELECT
UserId
FROM
t1
WHERE
Userid
=
22
;
SELECT
UserId
FROM
t1
WHERE
UserId
=
22
group
by
Userid
;
SELECT
DISTINCT
UserId
FROM
t1
WHERE
UserId
=
22
group
by
Userid
;
SELECT
DISTINCT
UserId
FROM
t1
WHERE
UserId
=
22
;
drop
table
t1
;
#
# Test of distinct
#
CREATE
TABLE
t1
(
a
int
(
10
)
unsigned
not
null
primary
key
,
b
int
(
10
)
unsigned
);
INSERT
INTO
t1
VALUES
(
1
,
1
),(
2
,
1
),(
3
,
1
),(
4
,
1
);
CREATE
TABLE
t2
(
a
int
(
10
)
unsigned
not
null
,
key
(
A
));
INSERT
INTO
t2
VALUES
(
1
),(
2
);
CREATE
TABLE
t3
(
a
int
(
10
)
unsigned
,
key
(
A
),
b
text
);
INSERT
INTO
t3
VALUES
(
1
,
'1'
),(
2
,
'2'
);
SELECT
DISTINCT
t3
.
b
FROM
t3
,
t2
,
t1
WHERE
t3
.
a
=
t1
.
b
AND
t1
.
a
=
t2
.
a
;
INSERT
INTO
t2
values
(
1
),(
2
),(
3
);
INSERT
INTO
t3
VALUES
(
1
,
'1'
),(
2
,
'2'
),(
1
,
'1'
),(
2
,
'2'
);
explain
SELECT
distinct
t3
.
a
FROM
t3
,
t2
,
t1
WHERE
t3
.
a
=
t1
.
b
AND
t1
.
a
=
t2
.
a
;
SELECT
distinct
t3
.
a
FROM
t3
,
t2
,
t1
WHERE
t3
.
a
=
t1
.
b
AND
t1
.
a
=
t2
.
a
;
# Create a lot of data into t3;
create
temporary
table
t4
select
*
from
t3
;
insert
into
t3
select
*
from
t4
;
insert
into
t4
select
*
from
t3
;
insert
into
t3
select
*
from
t4
;
insert
into
t4
select
*
from
t3
;
insert
into
t3
select
*
from
t4
;
insert
into
t4
select
*
from
t3
;
insert
into
t3
select
*
from
t4
;
explain
select
distinct
t1
.
a
from
t1
,
t3
where
t1
.
a
=
t3
.
a
;
#flush status;
select
distinct
t1
.
a
from
t1
,
t3
where
t1
.
a
=
t3
.
a
;
#show status like 'Handler%';
#flush status;
select
distinct
1
from
t1
,
t3
where
t1
.
a
=
t3
.
a
;
#show status like 'Handler%';
explain
SELECT
distinct
t1
.
a
from
t1
;
explain
SELECT
distinct
t1
.
a
from
t1
order
by
a
desc
;
explain
SELECT
t1
.
a
from
t1
group
by
a
order
by
a
desc
;
explain
SELECT
distinct
t1
.
a
from
t1
order
by
a
desc
limit
1
;
explain
SELECT
distinct
a
from
t3
order
by
a
desc
limit
2
;
explain
SELECT
distinct
a
,
b
from
t3
order
by
a
+
1
;
explain
SELECT
distinct
a
,
b
from
t3
order
by
a
limit
10
;
explain
SELECT
a
,
b
from
t3
group
by
a
,
b
order
by
a
+
1
;
drop
table
t1
,
t2
,
t3
,
t4
;
CREATE
TABLE
t1
(
name
varchar
(
255
));
INSERT
INTO
t1
VALUES
(
'aa'
),(
'ab'
),(
'ac'
),(
'ad'
),(
'ae'
);
SELECT
DISTINCT
*
FROM
t1
LIMIT
2
;
SELECT
DISTINCT
name
FROM
t1
LIMIT
2
;
SELECT
DISTINCT
1
FROM
t1
LIMIT
2
;
drop
table
t1
;
CREATE
TABLE
t1
(
ID
int
(
11
)
NOT
NULL
auto_increment
,
NAME
varchar
(
75
)
DEFAULT
''
NOT
NULL
,
LINK_ID
int
(
11
)
DEFAULT
'0'
NOT
NULL
,
PRIMARY
KEY
(
ID
),
KEY
NAME
(
NAME
),
KEY
LINK_ID
(
LINK_ID
)
);
INSERT
INTO
t1
(
ID
,
NAME
,
LINK_ID
)
VALUES
(
1
,
'Mike'
,
0
),(
2
,
'Jack'
,
0
),(
3
,
'Bill'
,
0
);
CREATE
TABLE
t2
(
ID
int
(
11
)
NOT
NULL
auto_increment
,
NAME
varchar
(
150
)
DEFAULT
''
NOT
NULL
,
PRIMARY
KEY
(
ID
),
KEY
NAME
(
NAME
)
);
SELECT
DISTINCT
t2
.
id
AS
key_link_id
,
t2
.
name
AS
link
FROM
t1
LEFT
JOIN
t2
ON
t1
.
link_id
=
t2
.
id
GROUP
BY
t1
.
id
ORDER
BY
link
;
drop
table
t1
,
t2
;
#
# Problem with table dependencies
#
create
table
t1
(
id
int
not
null
,
name
tinytext
not
null
,
unique
(
id
)
);
create
table
t2
(
id
int
not
null
,
idx
int
not
null
,
unique
(
id
,
idx
)
);
create
table
t3
(
id
int
not
null
,
idx
int
not
null
,
unique
(
id
,
idx
)
);
insert
into
t1
values
(
1
,
'yes'
),
(
2
,
'no'
);
insert
into
t2
values
(
1
,
1
);
insert
into
t3
values
(
1
,
1
);
EXPLAIN
SELECT
DISTINCT
t1
.
id
from
t1
straight_join
t2
straight_join
t3
straight_join
t1
as
j_lj_t2
left
join
t2
as
t2_lj
on
j_lj_t2
.
id
=
t2_lj
.
id
straight_join
t1
as
j_lj_t3
left
join
t3
as
t3_lj
on
j_lj_t3
.
id
=
t3_lj
.
id
WHERE
((
t1
.
id
=
j_lj_t2
.
id
AND
t2_lj
.
id
IS
NULL
)
OR
(
t1
.
id
=
t2
.
id
AND
t2
.
idx
=
2
))
AND
((
t1
.
id
=
j_lj_t3
.
id
AND
t3_lj
.
id
IS
NULL
)
OR
(
t1
.
id
=
t3
.
id
AND
t3
.
idx
=
2
));
SELECT
DISTINCT
t1
.
id
from
t1
straight_join
t2
straight_join
t3
straight_join
t1
as
j_lj_t2
left
join
t2
as
t2_lj
on
j_lj_t2
.
id
=
t2_lj
.
id
straight_join
t1
as
j_lj_t3
left
join
t3
as
t3_lj
on
j_lj_t3
.
id
=
t3_lj
.
id
WHERE
((
t1
.
id
=
j_lj_t2
.
id
AND
t2_lj
.
id
IS
NULL
)
OR
(
t1
.
id
=
t2
.
id
AND
t2
.
idx
=
2
))
AND
((
t1
.
id
=
j_lj_t3
.
id
AND
t3_lj
.
id
IS
NULL
)
OR
(
t1
.
id
=
t3
.
id
AND
t3
.
idx
=
2
));
drop
table
t1
,
t2
,
t3
;
#
# Test using DISTINCT on a function that contains a group function
# This also test the case when one doesn't use all fields in GROUP BY.
#
create
table
t1
(
a
int
not
null
,
b
int
not
null
,
t
time
);
insert
into
t1
values
(
1
,
1
,
"00:06:15"
),(
1
,
2
,
"00:06:15"
),(
1
,
2
,
"00:30:15"
),(
1
,
3
,
"00:06:15"
),(
1
,
3
,
"00:30:15"
);
select
a
,
sec_to_time
(
sum
(
time_to_sec
(
t
)))
from
t1
group
by
a
,
b
;
select
distinct
a
,
sec_to_time
(
sum
(
time_to_sec
(
t
)))
from
t1
group
by
a
,
b
;
create
table
t2
(
a
int
not
null
primary
key
,
b
int
);
insert
into
t2
values
(
1
,
1
),(
2
,
2
),(
3
,
3
);
select
t1
.
a
,
sec_to_time
(
sum
(
time_to_sec
(
t
)))
from
t1
left
join
t2
on
(
t1
.
b
=
t2
.
a
)
group
by
t1
.
a
,
t2
.
b
;
select
distinct
t1
.
a
,
sec_to_time
(
sum
(
time_to_sec
(
t
)))
from
t1
left
join
t2
on
(
t1
.
b
=
t2
.
a
)
group
by
t1
.
a
,
t2
.
b
;
drop
table
t1
,
t2
;
#
# Test problem with DISTINCT and HAVING
#
create
table
t1
(
a
int
not
null
,
b
char
(
5
),
c
text
);
insert
into
t1
(
a
)
values
(
1
),(
2
),(
3
),(
4
),(
1
),(
2
),(
3
),(
4
);
select
distinct
a
from
t1
group
by
b
,
a
having
a
>
2
order
by
a
desc
;
select
distinct
a
,
c
from
t1
group
by
b
,
c
,
a
having
a
>
2
order
by
a
desc
;
drop
table
t1
;
#
# Test problem with DISTINCT and ORDER BY DESC
#
create
table
t1
(
a
char
(
1
),
key
(
a
))
engine
=
myisam
;
insert
into
t1
values
(
'1'
),(
'1'
);
select
*
from
t1
where
a
>=
'1'
;
select
distinct
a
from
t1
order
by
a
desc
;
select
distinct
a
from
t1
where
a
>=
'1'
order
by
a
desc
;
drop
table
t1
;
#
# Test when using a not previously used column in ORDER BY
#
CREATE
TABLE
t1
(
email
varchar
(
50
),
infoID
BIGINT
,
dateentered
DATETIME
);
CREATE
TABLE
t2
(
infoID
BIGINT
,
shipcode
varchar
(
10
));
INSERT
INTO
t1
(
email
,
infoID
,
dateentered
)
VALUES
(
'test1@testdomain.com'
,
1
,
'2002-07-30 22:56:38'
),
(
'test1@testdomain.com'
,
1
,
'2002-07-27 22:58:16'
),
(
'test2@testdomain.com'
,
1
,
'2002-06-19 15:22:19'
),
(
'test2@testdomain.com'
,
2
,
'2002-06-18 14:23:47'
),
(
'test3@testdomain.com'
,
1
,
'2002-05-19 22:17:32'
);
INSERT
INTO
t2
(
infoID
,
shipcode
)
VALUES
(
1
,
'Z001'
),
(
2
,
'R002'
);
SELECT
DISTINCTROW
email
,
shipcode
FROM
t1
,
t2
WHERE
t1
.
infoID
=
t2
.
infoID
;
SELECT
DISTINCTROW
email
FROM
t1
ORDER
BY
dateentered
DESC
;
SELECT
DISTINCTROW
email
,
shipcode
FROM
t1
,
t2
WHERE
t1
.
infoID
=
t2
.
infoID
ORDER
BY
dateentered
DESC
;
drop
table
t1
,
t2
;
#
# test with table.* in DISTINCT
#
CREATE
TABLE
t1
(
privatemessageid
int
(
10
)
unsigned
NOT
NULL
auto_increment
,
folderid
smallint
(
6
)
NOT
NULL
default
'0'
,
userid
int
(
10
)
unsigned
NOT
NULL
default
'0'
,
touserid
int
(
10
)
unsigned
NOT
NULL
default
'0'
,
fromuserid
int
(
10
)
unsigned
NOT
NULL
default
'0'
,
title
varchar
(
250
)
NOT
NULL
default
''
,
message
mediumtext
NOT
NULL
,
dateline
int
(
10
)
unsigned
NOT
NULL
default
'0'
,
showsignature
smallint
(
6
)
NOT
NULL
default
'0'
,
iconid
smallint
(
5
)
unsigned
NOT
NULL
default
'0'
,
messageread
smallint
(
6
)
NOT
NULL
default
'0'
,
readtime
int
(
10
)
unsigned
NOT
NULL
default
'0'
,
receipt
smallint
(
6
)
unsigned
NOT
NULL
default
'0'
,
deleteprompt
smallint
(
6
)
unsigned
NOT
NULL
default
'0'
,
multiplerecipients
smallint
(
6
)
unsigned
NOT
NULL
default
'0'
,
PRIMARY
KEY
(
privatemessageid
),
KEY
userid
(
userid
))
ENGINE
=
MyISAM
;
INSERT
INTO
t1
VALUES
(
128
,
0
,
33
,
33
,
8
,
':D'
,
''
,
996121863
,
1
,
0
,
2
,
996122850
,
2
,
0
,
0
);
CREATE
TABLE
t2
(
userid
int
(
10
)
unsigned
NOT
NULL
auto_increment
,
usergroupid
smallint
(
5
)
unsigned
NOT
NULL
default
'0'
,
username
varchar
(
50
)
NOT
NULL
default
''
,
password
varchar
(
50
)
NOT
NULL
default
''
,
email
varchar
(
50
)
NOT
NULL
default
''
,
styleid
smallint
(
5
)
unsigned
NOT
NULL
default
'0'
,
parentemail
varchar
(
50
)
NOT
NULL
default
''
,
coppauser
smallint
(
6
)
NOT
NULL
default
'0'
,
homepage
varchar
(
100
)
NOT
NULL
default
''
,
icq
varchar
(
20
)
NOT
NULL
default
''
,
aim
varchar
(
20
)
NOT
NULL
default
''
,
yahoo
varchar
(
20
)
NOT
NULL
default
''
,
signature
mediumtext
NOT
NULL
,
adminemail
smallint
(
6
)
NOT
NULL
default
'0'
,
showemail
smallint
(
6
)
NOT
NULL
default
'0'
,
invisible
smallint
(
6
)
NOT
NULL
default
'0'
,
usertitle
varchar
(
250
)
NOT
NULL
default
''
,
customtitle
smallint
(
6
)
NOT
NULL
default
'0'
,
joindate
int
(
10
)
unsigned
NOT
NULL
default
'0'
,
cookieuser
smallint
(
6
)
NOT
NULL
default
'0'
,
daysprune
smallint
(
6
)
NOT
NULL
default
'0'
,
lastvisit
int
(
10
)
unsigned
NOT
NULL
default
'0'
,
lastactivity
int
(
10
)
unsigned
NOT
NULL
default
'0'
,
lastpost
int
(
10
)
unsigned
NOT
NULL
default
'0'
,
posts
smallint
(
5
)
unsigned
NOT
NULL
default
'0'
,
timezoneoffset
varchar
(
4
)
NOT
NULL
default
''
,
emailnotification
smallint
(
6
)
NOT
NULL
default
'0'
,
buddylist
mediumtext
NOT
NULL
,
ignorelist
mediumtext
NOT
NULL
,
pmfolders
mediumtext
NOT
NULL
,
receivepm
smallint
(
6
)
NOT
NULL
default
'0'
,
emailonpm
smallint
(
6
)
NOT
NULL
default
'0'
,
pmpopup
smallint
(
6
)
NOT
NULL
default
'0'
,
avatarid
smallint
(
6
)
NOT
NULL
default
'0'
,
avatarrevision
int
(
6
)
unsigned
NOT
NULL
default
'0'
,
options
smallint
(
6
)
NOT
NULL
default
'15'
,
birthday
date
NOT
NULL
default
'0000-00-00'
,
maxposts
smallint
(
6
)
NOT
NULL
default
'-1'
,
startofweek
smallint
(
6
)
NOT
NULL
default
'1'
,
ipaddress
varchar
(
20
)
NOT
NULL
default
''
,
referrerid
int
(
10
)
unsigned
NOT
NULL
default
'0'
,
nosessionhash
smallint
(
6
)
NOT
NULL
default
'0'
,
autorefresh
smallint
(
6
)
NOT
NULL
default
'-1'
,
messagepopup
tinyint
(
2
)
NOT
NULL
default
'0'
,
inforum
smallint
(
5
)
unsigned
NOT
NULL
default
'0'
,
ratenum
smallint
(
5
)
unsigned
NOT
NULL
default
'0'
,
ratetotal
smallint
(
5
)
unsigned
NOT
NULL
default
'0'
,
allowrate
smallint
(
5
)
unsigned
NOT
NULL
default
'1'
,
PRIMARY
KEY
(
userid
),
KEY
usergroupid
(
usergroupid
),
KEY
username
(
username
),
KEY
inforum
(
inforum
))
ENGINE
=
MyISAM
;
INSERT
INTO
t2
VALUES
(
33
,
6
,
'Kevin'
,
'0'
,
'kevin@stileproject.com'
,
1
,
''
,
0
,
'http://www.stileproject.com'
,
''
,
''
,
''
,
''
,
1
,
1
,
0
,
'Administrator'
,
0
,
996120694
,
1
,
-
1
,
1030996168
,
1031027028
,
1030599436
,
36
,
'-6'
,
0
,
''
,
''
,
''
,
1
,
0
,
1
,
0
,
0
,
15
,
'0000-00-00'
,
-
1
,
1
,
'64.0.0.0'
,
0
,
1
,
-
1
,
0
,
0
,
4
,
19
,
1
);
SELECT
DISTINCT
t1
.*
,
t2
.*
FROM
t1
LEFT
JOIN
t2
ON
(
t2
.
userid
=
t1
.
touserid
);
DROP
TABLE
t1
,
t2
;
#
# test with const_item in ORDER BY
#
CREATE
TABLE
t1
(
a
int
primary
key
,
b
int
,
c
int
);
INSERT
t1
VALUES
(
1
,
2
,
3
);
CREATE
TABLE
t2
(
a
int
primary
key
,
b
int
,
c
int
);
INSERT
t2
VALUES
(
3
,
4
,
5
);
SELECT
DISTINCT
t1
.
a
,
t2
.
b
FROM
t1
,
t2
WHERE
t1
.
a
=
1
ORDER
BY
t2
.
c
;
DROP
TABLE
t1
,
t2
;
#
# Test of LEFT() with distinct
#
CREATE
table
t1
(
`id`
int
(
11
)
NOT
NULL
auto_increment
,
`name`
varchar
(
50
)
NOT
NULL
default
''
,
PRIMARY
KEY
(
`id`
))
ENGINE
=
MyISAM
AUTO_INCREMENT
=
3
;
INSERT
INTO
t1
VALUES
(
1
,
'aaaaa'
);
INSERT
INTO
t1
VALUES
(
3
,
'aaaaa'
);
INSERT
INTO
t1
VALUES
(
2
,
'eeeeeee'
);
select
distinct
left
(
name
,
1
)
as
name
from
t1
;
drop
table
t1
;
#
# Test case from sel000100
#
CREATE
TABLE
t1
(
ID
int
(
11
)
NOT
NULL
auto_increment
,
NAME
varchar
(
75
)
DEFAULT
''
NOT
NULL
,
LINK_ID
int
(
11
)
DEFAULT
'0'
NOT
NULL
,
PRIMARY
KEY
(
ID
),
KEY
NAME
(
NAME
),
KEY
LINK_ID
(
LINK_ID
)
);
INSERT
INTO
t1
(
ID
,
NAME
,
LINK_ID
)
VALUES
(
1
,
'Mike'
,
0
);
INSERT
INTO
t1
(
ID
,
NAME
,
LINK_ID
)
VALUES
(
2
,
'Jack'
,
0
);
INSERT
INTO
t1
(
ID
,
NAME
,
LINK_ID
)
VALUES
(
3
,
'Bill'
,
0
);
CREATE
TABLE
t2
(
ID
int
(
11
)
NOT
NULL
auto_increment
,
NAME
varchar
(
150
)
DEFAULT
''
NOT
NULL
,
PRIMARY
KEY
(
ID
),
KEY
NAME
(
NAME
)
);
SELECT
DISTINCT
t2
.
id
AS
key_link_id
,
t2
.
name
AS
link
FROM
t1
LEFT
JOIN
t2
ON
t1
.
link_id
=
t2
.
id
GROUP
BY
t1
.
id
ORDER
BY
link
;
drop
table
t1
,
t2
;
#
# test case for #674
#
CREATE
TABLE
t1
(
html
varchar
(
5
)
default
NULL
,
rin
int
(
11
)
default
'0'
,
rout
int
(
11
)
default
'0'
)
ENGINE
=
MyISAM
;
INSERT
INTO
t1
VALUES
(
'1'
,
1
,
0
);
SELECT
DISTINCT
html
,
SUM
(
rout
)
/
(
SUM
(
rin
)
+
1
)
as
'prod'
FROM
t1
GROUP
BY
rin
;
drop
table
t1
;
#
# Test cases for #12625: DISTINCT for a list with constants
#
CREATE
TABLE
t1
(
a
int
);
INSERT
INTO
t1
VALUES
(
1
),(
2
),(
3
),(
4
),(
5
);
SELECT
DISTINCT
a
,
1
FROM
t1
;
SELECT
DISTINCT
1
,
a
FROM
t1
;
CREATE
TABLE
t2
(
a
int
,
b
int
);
INSERT
INTO
t2
VALUES
(
1
,
1
),(
2
,
2
),(
2
,
3
),(
2
,
4
),(
3
,
5
);
SELECT
DISTINCT
a
,
b
,
2
FROM
t2
;
SELECT
DISTINCT
2
,
a
,
b
FROM
t2
;
SELECT
DISTINCT
a
,
2
,
b
FROM
t2
;
DROP
TABLE
t1
,
t2
;
# Bug 9784 DISTINCT IFNULL truncates data
#
create
table
t1
(
id
int
,
dsc
varchar
(
50
));
insert
into
t1
values
(
1
,
"line number one"
),
(
2
,
"line number two"
),
(
3
,
"line number three"
);
select
distinct
id
,
IFNULL
(
dsc
,
'-'
)
from
t1
;
drop
table
t1
;
# End of 4.1 tests
mysql-test/t/insert_select.test
View file @
db896a66
...
...
@@ -202,14 +202,4 @@ insert into t1 select t2.a from t2 on duplicate key update t2.a= a + t2.b;
insert
into
t1
select
t2
.
a
from
t2
group
by
t2
.
a
on
duplicate
key
update
a
=
t1
.
a
+
t2
.
b
;
drop
table
t1
,
t2
,
t3
;
#
# Bug #12695 Item_func_isnull::update_used_tables() did not update
# const_item_cache
create
table
t1
(
f1
varchar
(
5
)
key
);
insert
into
t1
(
f1
)
select
if
(
max
(
f1
)
is
null
,
'2000'
,
max
(
f1
)
+
1
)
from
t1
;
insert
into
t1
(
f1
)
select
if
(
max
(
f1
)
is
null
,
'2000'
,
max
(
f1
)
+
1
)
from
t1
;
insert
into
t1
(
f1
)
select
if
(
max
(
f1
)
is
null
,
'2000'
,
max
(
f1
)
+
1
)
from
t1
;
select
*
from
t1
;
drop
table
t1
;
# End of 4.1 tests
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