使用逗号分隔数据时避免数据复制

时间:2014-02-19 17:13:08

标签: mysql replication

我正在开展一个项目,我需要将数据保存在"逗号分隔数据"形成。我需要在这里避免数据复制。我该怎么做?

例如:

id |  name |  fav     
1  |  abc  |  11,2,3,4,5,11,2
2  |  
3  |
.
.
.

我如何只显示11,2,3,4,5(来自fav)

我使用了查询:


SELECT DISTINCT fav FROM user_details 在哪里id =' 1' ORDER BY fav ASC ***

1 个答案:

答案 0 :(得分:0)

您可以通过以适合关系数据库的方式存储数据来解决此问题,然后以适合呈现的格式提取数据。

您似乎需要一个“UserFav”表,每次使用一行,每个“fav”一行。如果你有这样的结构,你的查询将是:

select id, name, group_concat(distinct uf.favid order by uf.id) as favs
from table t join
     UserFav uf
     on t.id = uf.userid
group by t.id;

我想说,试图在数据库中进行这样的字符串操作是愚蠢的。数据库旨在进行一些非常复杂的数据操作。使用它们。不要试图将圆形钉固定在方孔中。