将类似结果组合在一起

时间:2014-07-21 04:24:38

标签: php mysql arrays

我正在寻找一种将类似结果组合在一起的方法。

我有一张带有很多乐队图像的桌子。每个图像名称都用乐队的名称标识,后跟一个数字。例如:

Metallica 1
Metallica 2
Iron Maiden 1
Iron Maiden 2
Iron Maiden 3
Pink Floyd 1

我正在寻找一种将结果分组在一起的方法。看起来像这样的东西:

Metallica (2 results)
Iron Maiden (3 results)
Pink Floyd (1 result)

到目前为止我有这个:

$asql = "SELECT * FROM bands WHERE GROUP BY image";
$ares = mysql_query($asql) or die(mysql_error());
while($row = mysql_fetch_array($ares)) {
$image = $row['image'];
echo "<a href=\"view_more_images.php?band=$image\">$image (X results)</a>";
}

但它只将具有完全相同名称的项目组合在一起

1 个答案:

答案 0 :(得分:2)

如果图片包含字符串“BAND NUMBER”,您应该考虑在此列中添加一个仅包含波段名称和分组的列。

无论如何,您可以使用以下SQL忽略最后一个标记:

SELECT
  LEFT(image, LENGTH(image) - LOCATE(' ', REVERSE(image))+1) bandname,
  COUNT(image)
FROM bands
GROUP BY bandname