mysql - 限制 LEFT JOIN 组的数量

标签 mysql data-structures

用下表:

SELECT i.*, GROUP_CONCAT(t.name) tagList
FROM items AS i
LEFT JOIN tag_rel AS tr ON (tr.item = j.id)
LEFT JOIN tags AS t ON (t.id = tr.tag)
GROUP BY i.id 
ORDER BY i.id DESC

有没有办法限制tagList的元素?不是给我所有标签(在某些情况下超过 30 个),我可以将它限制为 5 个吗?

最佳答案

SELECT i.*, SUBSTRING_INDEX(GROUP_CONCAT(t.name SEPARATOR ','), ',', 5) tagList
FROM items AS i
LEFT JOIN tag_rel AS tr ON (tr.item = j.id)
LEFT JOIN tags AS t ON (t.id = tr.tag)
GROUP BY i.id 
ORDER BY i.id DESC

只需将 5 替换为所需的数字

关于mysql - 限制 LEFT JOIN 组的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20049557/

相关文章:

mysql - 如何通过 EasyPHP DevServer 的命令行访问 MySQL

mysql - 按升序创建 MYSQL 行

php echo exit() 和可选字段

mysql - 选择查询中获取的两列的差异

python - 使用 Python 对 AD dnsRecord 值进行编码/解码

java - 如何使用二进制搜索找到将值插入有序数组的位置?

php - 我应该在哪里放置 SET time_zone = 'America/New_York'

c++ - 如何在构造函数中初始化struct的动态数组?

python - python中树中的最长路径

linux - Linux 内核的嵌套结构查看器