我正在寻找一种将类似结果组合在一起的方法。
我有一张带有很多乐队图像的桌子。每个图像名称都用乐队的名称标识,后跟一个数字。例如:
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>";
}
但它只将具有完全相同名称的项目组合在一起
答案 0 :(得分:2)
如果图片包含字符串“BAND NUMBER”,您应该考虑在此列中添加一个仅包含波段名称和分组的列。
无论如何,您可以使用以下SQL忽略最后一个标记:
SELECT
LEFT(image, LENGTH(image) - LOCATE(' ', REVERSE(image))+1) bandname,
COUNT(image)
FROM bands
GROUP BY bandname