具有技能限制的 GROUP_CONCAT
在球员及其技能处于多对多关系的数据库中,需要进行查询列出玩家及其前三项技能。初始查询尝试使用 GROUP_CONCAT 来连接技能标题,但缺少将技能数量限制为三个的方法。
解决方案:
而 GROUP_CONCAT 则不会直接支持限制,可以通过对连接的后处理来使用解决方法string:
substring_index(group_concat(s.title SEPARATOR ','), ',', 3) as skills
此命令从连接的字符串中提取以逗号分隔的前三个技能标题。它假设技能名称不包含逗号,并且技能数量相当小。
注意:
为了确保正确的结果,player_skills 表应该有一个主键由元组(player_id,skill_id)组成,防止同一技能被多次分配给玩家。
以上是如何将 GROUP_CONCAT 查询中显示的技能数量限制为前三名?的详细内容。更多信息请关注PHP中文网其他相关文章!