检索MYSQL Query中所有结果的所有标记

时间:2011-07-01 21:24:41

标签: mysql

我正在制作视频标记系统。我知道搜索结果中我想要的每个视频的唯一ID,这要归功于之前我必须运行的查询,但我想要做的是在列表的搜索结果中显示每个视频的所有标签,这样就有多个类别显示和贡献者无需点击进入主页面。

以下代码为搜索结果中的2个视频返回5行。我总是可以循环这个结果,但那意味着我不能使用限制函数,我将不得不构建一些PHP来为我做这件事。

SELECT * FROM tags
JOIN siteupdates ON tags.item_id = siteupdates.clip_id
JOIN updatetype ON siteupdates.updatetype = updatetype.id_type
JOIN tagnames ON tags.tag = tagnames.tagid
WHERE tags.item_id IN (248,257)
ORDER BY siteupdates.clip_date DESC

结果(这是前5个结果的示例,我删除了大多数不相关的列)

uid / item_id / tag / updatetype / tagname / tagtype
1560 / 248 / 14 / 1 / tag 14 / Category
1561 / 248 / 3 / 1 / tag 3 / Contributor
1562 / 248 / 7 / 1 / tag 7 / Category
543 / 257 / 43 / 1 / tag 43 / Category
544 / 257 / 3 / 1 / tag 3 / Contributor

理想情况下,我需要的是2行结果,但包含所有标记数据。

或者,我只是要求只用MYSQL才能实现的东西,而我在PHP中循环的原始计划是唯一的选择吗?获取每个结果的标记信息的新查询对我来说听起来不是一个好主意,因为每页最多可以有50个结果,总共52个查询(包括脚本中的一个)!

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

所以,如果我找到了你,你想要所有的标签,但每个结果记录不是一个标签,而是一个一个?在这种情况下,GROUP_CONCAT()可能有所帮助。

相关问题