如何 sql 具有多个字符串分隔符的列中的不同值 ','
how to sql distinct value inside a column that have multiple string delimeter by ','
大家好,我正在尝试使用 mysql 生成新的 table,它们在具有大量字符串的同一列中具有差异值(这意味着消除重复项)。
我已经尝试了 group_concat(distinct column_name asc column_name separator ',') 但它没有给出我想要的结果,
重要提示:我想在一列中使用不同的值
1号图在sql之前,2号图在group_concat之后sql,还是重复的
谢谢
你可以做到,但你应该听取 PM77-1 的建议,并且你应该规范化你的数据。
就是说...您可以通过以下方式使用临时 table:
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;
我做了一个工作 Fiddle。
(因为SQLFiddle这几天行不通我用了rextester.com)
http://rextester.com/HMUC89223
结果:
hashtag_name
1 tido,makan,ittify,general,ittified,travel,lifestyle,minum,air,keyboard,lepak,gg,nice
大家好,我正在尝试使用 mysql 生成新的 table,它们在具有大量字符串的同一列中具有差异值(这意味着消除重复项)。
我已经尝试了 group_concat(distinct column_name asc column_name separator ',') 但它没有给出我想要的结果,
重要提示:我想在一列中使用不同的值
1号图在sql之前,2号图在group_concat之后sql,还是重复的
谢谢
你可以做到,但你应该听取 PM77-1 的建议,并且你应该规范化你的数据。
就是说...您可以通过以下方式使用临时 table:
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;
我做了一个工作 Fiddle。 (因为SQLFiddle这几天行不通我用了rextester.com) http://rextester.com/HMUC89223
结果:
hashtag_name
1 tido,makan,ittify,general,ittified,travel,lifestyle,minum,air,keyboard,lepak,gg,nice