当前位置: 首页 > 面试题库 >

在单行中选择用新行分隔的多行

吕昀
2023-03-14
问题内容

我有一个表,值看起来像这样。

    Id Name Fruit
    ------------
    1 Jon  Apple
    ------------
    2 Jon  Orange
    ------------
    3 Jon  Grape
    ------------
    4 Mike Apple
    ------------
    5 Mike Orange
    -------------

如何在mysql中将列区分为类似的内容?

    Name Fruit
    ----------
    Jon  Apple
         Orange
         Grape
    -----------
    Mike Apple
         Orange
    -----------

问题答案:

这应该做

SELECT name, GROUP_CONCAT(fruit SEPARATOR '\n') FROM your_table GROUP BY name

db <>
fiddle中的演示

更新以添加编号:

SELECT name ,
       GROUP_CONCAT(CONCAT (rn,')',fruit) SEPARATOR '\n')
FROM (
    SELECT * 
        ,ROW_NUMBER() OVER (PARTITION BY name) AS rn
    FROM your_table
    ) SQ
GROUP BY name

在db <>
fiddle中编号的演示



 类似资料:
  • 问题内容: 我想编写一个SQL Server查询,该查询将从以下示例表中检索数据: 如您所见,SkillLink表的目的是将各种(可能是多个或没有)技能与单个人员匹配。我想通过查询实现的结果是: 因此,对于每个人,我都希望使用逗号连接的所有指向他的SkillName列表。这可能是多种技能,或者根本没有。 这显然不是我正在使用的实际数据,但是结构是相同的。 也请随时为这个问题建议一个更好的标题作为注

  • 问题内容: 如何选择多列的平均值? 假设我有一些数据,例如: 我想得到像 我试过了 但这是行不通的。 有关查询的任何想法可以做到这一点? 问题答案: 尝试 或者

  • 问题内容: 我有两个表:DISH和DISH_HAS_DISHES。Dish表包含所有菜肴,“ Dish_has_dishes”表与“ Dish”表具有一对多关系。即一个菜可以有多个菜。例如 碟 : DISH_HAS_DISHES : 这里的meat_id和dish_id都是来自DISH表的ID。现在我想要这样的格式: 这是用逗号分隔的菜肴ID和每餐的名称。怎么做? 问题答案: 使用GROUP_CO

  • 问题内容: 有没有简单的方法来选择更新的行? 我试图每次读取行时都存储时间戳,以便能够删除长时间未读取的数据。 首先,我首先尝试执行查询,甚至发现有点慢但是简单的解决方案,例如 但我仍然想找到一种正常的方法来做到这一点。 我还认为先更新时间然后选择更新的行应该容易得多,但是即使如此,我也没有找到任何东西 问题答案: 声明该列,如下所示: 然后,每当更新一行时,该列就会自动更新。 更新: 我认为没有

  • 问题内容: 我目前正在使用JTable来显示数据库中的内容。我想为用户提供便利,以便他可以使用Shift +箭头键选择想要的行数,然后稍后使用提供的删除选项删除那些记录。请提供一个小例子。 问题答案: 您需要允许多项选择: 然后,您需要编写适当的选择侦听器。这有点困难,请尝试在Google相关解决方案中查找。您可以看一个选择侦听器的示例。

  • 问题内容: 我有一个JTable,它的一列是不可编辑的文本,第二列是一个显示布尔值的复选框…。现在我要的是,当用户选择多行并取消选中其中的任何一个时选中的复选框,则选中的所有复选框都应取消选中,反之亦然。 问题答案: 使用@Hovercraft的示例和@camickr的建议,以下示例显示了合适的用户界面。尽管它使用按钮,但它也适用于菜单或弹出窗口。