我如何在一个字段MySQL中列出项目?

时间:2010-07-23 10:40:04

标签: mysql concatenation

我有一个充满模型的表格,模型开始年份和结束年份以及分配给它的productid

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

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

DPERROTT

1 个答案:

答案 0 :(得分: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