在MySql Select中显示两次列值

时间:2016-06-08 04:28:00

标签: mysql select

如果我有一个带值的MySql表

col1
=====
1
1
1
5
5
5
5
7
7

我想得到col1的所有不同值(即1,5,)并使用一个SELECT语句获得输出,如下所示:

1~1
5~5
7~7

我该怎么做?

2 个答案:

答案 0 :(得分:3)

以下是查询:

~函数中使用分隔符GROUP_CONCAT

查询#1用例场景:如果您想要将col1值与潮汐(~)分开,只有相应的值在整个表格中具有相同的值时。

查询#1

SELECT 
 GROUP_CONCAT(col1 SEPARATOR '~') output
FROM scotttable
GROUP BY col1;

SQL FIDDLE DEMO

注意:它适用于任意数量的相同值。

查询#2用例场景:仅当您需要distinct col1值时,无论它们是否存在相应的相同值,都存在。

查询#2

SELECT 
 CONCAT(col1,'~',col1) output
FROM scotttable
GROUP BY col1;

FIDDLE OF THIS QUERY

答案 1 :(得分:3)

以下是使用子查询的选项:

SELECT CONCAT(t.value, '~', t.value)
FROM
(
    SELECT DISTINCT col1 AS value
    FROM yourTable
) t

请按照以下链接查看正在运行的演示:

SQLFiddle