如何在具有多个字符串分隔符的列中的sql不同值由','

时间:2016-10-10 14:52:12

标签: mysql distinct group-concat distinct-values

enter image description here

大家好,我试图使用具有差异值的mysql生成新表(这意味着消除重复)在具有如此多字符串的同一列中。

我已经尝试了group_concat(distinct column_name asc column_name separator',')但它没有给出我想要的结果,

重要提示:我希望列中包含不同的值

图片号1在sql之前,而号码2在group_concat sql之后,它仍然在那里重复。

谢谢

1 个答案:

答案 0 :(得分:1)

你可以这样做但你应该接受PM77-1的建议,你应该规范化你的数据。

那说......你可以通过以下方式使用临时表:

CREATE TEMPORARY TABLE temp (val CHAR(255));
SET @S1 = CONCAT("INSERT INTO temp (val) VALUES ('",REPLACE((SELECT GROUP_CONCAT( DISTINCT hashtag_name) AS data FROM hashes), ",", "'),('"),"');");
PREPARE stmt1 FROM @s1;
EXECUTE stmt1;
SELECT group_concat(DISTINCT(val)) as hashtag_name FROM temp;

我做了一个工作小提琴。 (因为SQLFiddle目前无法使用rextester.com) http://rextester.com/HMUC89223

结果:

    hashtag_name
1   tido,makan,ittify,general,ittified,travel,lifestyle,minum,air,keyboard,lepak,gg,nice