请教一句 SQL 语句

2015-06-03 13:42:17 +08:00
 MrGba2z
我想要得到按tag分类的查询结果, 但是tag有哪些我并不知道

我的想法是

先查询所有的tag, 然后循环用tag为条件查询

因为还没学过数据库, 不太清楚是否有比较好的办法能一次性搞定?

期望的返回结果:
tag1: data1, data2, data3
tag2: data1, data2, data3...
可以数组套数组 或者字典里key为tag, value为数组
不知道我表达清楚意思了没
2269 次点击
所在节点    问与答
15 条回复
publicID001
2015-06-03 13:56:26 +08:00
先取出所有数据然后按tag排序?
MrGba2z
2015-06-03 14:01:24 +08:00
@publicID001

这个办法应该比我的好, 起码对数据库的压力小.

我最理想的还是能够直接按我说的那样把结果取出来(但我不确定是否能这样,所以来这里问问)
ALeo
2015-06-03 14:03:11 +08:00
那样不是会出现1+ N 的问题。。。?
MrGba2z
2015-06-03 14:18:49 +08:00
@ALeo 每个数据就只有一个tag...
hahasong
2015-06-03 14:54:20 +08:00
自行用代码搞定,不要什么都扔给数据库。给个通常的思路,先一次查出所有数据,然后用代码做循环,重新按TAG组织一下数据
RIcter
2015-06-03 14:56:00 +08:00
select key3,group_concat(key_one) from test group by key3;

MrGba2z
2015-06-03 15:35:48 +08:00
@RIcter 菊苣么么哒 就是这种! 可惜看不出背景图是啥
RIcter
2015-06-03 15:37:20 +08:00
@MrGba2z P站ID:46814187
MrGba2z
2015-06-03 15:53:20 +08:00
@RIcter
我又试了下不太对..
同样的tag数据只有一条出来
比如
name / tag
a 1
b 2
c 3
d 2
只会返回3条

我想要的是
[[(a,1)], [(b,2), (d, 2)], [(c,3)]]
这样的
不知可行不?
RIcter
2015-06-03 16:00:12 +08:00
@MrGba2z MySQL 做不到这样吧..不符合范式了..=A=
RIcter
2015-06-03 16:01:02 +08:00
你可以用 mongodb ww
angeloce
2015-06-03 16:06:27 +08:00
其实, 按tag排序就是你要的
MrGba2z
2015-06-03 16:10:37 +08:00
@RIcter
了解了 只能代码里处理了

@angeloce
我还想让他们按tag自动分组,
目前看来只能按tag排序输出,然后手动分组了
immjun
2015-06-03 17:09:09 +08:00
@RIcter 看到你用 MariaDB 做例子刚想问和 PostgreSQL 对比用哪个好 然后点进博看看到 Hacking PostgreSQL 吓了我一跳...
RIcter
2015-06-03 17:11:33 +08:00
@immjun 其實我不會postgresql(

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/195782

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX