大家好,我试图使用具有差异值的mysql生成新表(这意味着消除重复)在具有如此多字符串的同一列中。
我已经尝试了group_concat(distinct column_name asc column_name separator',')但它没有给出我想要的结果,
重要提示:我希望列中包含不同的值
图片号1在sql之前,而号码2在group_concat sql之后,它仍然在那里重复。
谢谢
答案 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