【问题标题】:how can i list items in one field MySQL?我如何在一个字段 MySQL 中列出项目?
【发布时间】:2010-07-23 10:40:03
【问题描述】:

我有一个表格,里面有模型,模型的开始年份和结束年份以及分配给它的产品 ID

ModelNo | StartYear | EndYear | ProductID |  
0       | 1997      | 2000    | 511777    |  
1       | 1998      | 1998    | 511789    |  

我想要一个如下的sql结果:

ProductID | Profile  
511777    | 0-1997,0-1998,0-1999,0-2000  
511789    | 1-1998

如果有人对我如何实现这一点有任何想法。

德佩罗特

【问题讨论】:

  • 为什么需要它作为 MySQL 结果。这是可能的,但在 MySQL 中超载这样做是可能的。我建议在查询数据后用编程语言来做。

标签: mysql concatenation


【解决方案1】:

您需要加入一个辅助 numbers table(包含连续整数)以将范围内的缺失数字带入。即类似于

... FROM Models m
JOIN Numbers n ON n.number >= m.StartYear AND n.number <= m.EndYear

然后使用CONCAT得到0-1997

GROUP_CONCAT 得到0-1997,0-1998,0-1999,0-2000

【讨论】:

    猜你喜欢
    • 2020-08-15
    • 2015-03-11
    • 1970-01-01
    • 2018-01-22
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多