mysql concat 去掉重复_mysql - concat字段具有共同的重复密钥,并删除那些重复项,从而留下一个 - 堆栈内存溢出...
這讓我煩惱了最后一個星期,而憑借基本的知識,我根本無法找到一種解決方案,將我們帶到了我們所需要的位置。 我已經(jīng)搜索了更新,group_concat,concat,聯(lián)接,但我無法獲得我們需要的結(jié)果。
問題如下:
我們有2列可用于獲得所需結(jié)果的列:
我們正在研究的數(shù)據(jù)庫:
+------------------------------------+-------------+
| id | value |
+------------------------------------+-------------+
| D44172cb5c086c19a4c0286270916bc52 | A |
| D44172cb5c086c19a4c0286270916bc52 | C |
| D44172cb5c086c19a4c0286270916bc52 | B |
| D87d93570cbc9a3edc18601e0aff6e261 | D |
| D87d93570cbc9a3edc18601e0aff6e261 | A |
| D87d93570cbc9a3edc18601e0aff6e261 | F |
+------------------------------------+-------------+
我們期望得到的是:
+-------------------------------------+-------------+
| id | value |
+-------------------------------------+-------------+
| D44172cb5c086c19a4c0286270916bc52 | A|C|B |
| D87d93570cbc9a3edc18601e0aff6e261 | D|A|F |
+-------------------------------------+-------------+
我們當(dāng)前正在使用一個SELECT命令,該命令可以正常工作,并在名為valuenew的臨時(因為我們僅選擇)列中按預(yù)期提供數(shù)據(jù):
SELECT * GROUP_CONCAT(value SEPARATOR '|') AS valuenew FROM db.table GROUP BY id ;
在連接所需的值之后,我們?nèi)绾芜M行刪除重復(fù)項的查詢( UPDATE或DELETE )? 因為使用GROUP_CONCAT返回的行數(shù)將少于實際存在的行數(shù)。
我們需要在以后的階段中將串聯(lián)的值與其他列組合在一起,以便行必須等于返回的行。
解
CREATE TABLE IF NOT EXISTS `temp`
SELECT *, GROUP_CONCAT(`value` SEPARATOR '|') AS `values`
FROM `db`.`table`
GROUP BY `id`;
TRUNCATE TABLE `db`.`table`;
UPDATE `temp` SET value = values;
ALTER TABLE `temp` DROP COLUMN values;
INSERT INTO `db`.`table`([all column titles here])
SELECT *
FROM `db`.`temp`
;
DROP TABLE `db`.`temp`;
總結(jié)
以上是生活随笔為你收集整理的mysql concat 去掉重复_mysql - concat字段具有共同的重复密钥,并删除那些重复项,从而留下一个 - 堆栈内存溢出...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux转mysql_转linux下m
- 下一篇: go定时读取mysql_golang+数