tab*_*ber 2 mysql database duplicates group-concat
我有一个像这样设置的mysql表:
id uid keywords -- --- --- 1 20 corporate 2 20 corporate,business,strategy 3 20 corporate,bowser 4 20 flowers 5 20 battleship,corporate,dungeon
我希望我的输出看起来像是:
20 corporate,business,strategy,bowser,flowers,battleship,dungeon
但我最接近的是:
SELECT DISTINCT uid, GROUP_CONCAT(DISTINCT keywords ORDER BY keywords DESC) AS keywords FROM mytable WHERE uid !=0 GROUP BY uid
哪个输出:
20 corporate,corporate,business,strategy,corporate,bowser,flowers,battleship,corporate,dungeon
有没有人有办法解决吗?非常感谢提前!
您使用纯SQL的方式无法实现数据结构化.
没有SQL实现会考虑"企业"和"企业,业务",并将它们视为相同的字符串.因此,明显不起作用.
如果可以控制数据库,
我要做的第一件事是将数据设置更改为:
id uid keyword <- note, not keyword**s** - **ONE** value in this column, not a comma delimited list
1 20 corporate
2 20 corporate
2 20 business
2 20 strategy
Run Code Online (Sandbox Code Playgroud)
更好的是
id uid keywordId
1 20 1
2 20 1
2 20 2
2 20 3
Run Code Online (Sandbox Code Playgroud)
与关键字的单独表格
KeywordID KeywordText
1 Corporate
2 Business
Run Code Online (Sandbox Code Playgroud)
否则你需要在代码中按摩数据.