我正在制作专辑列表,数据库中的信息是歌曲标题,艺术家标题,专辑标题和专辑封面的URL。
我完全死路一条,因为我从未尝试过以下方面的成功:
如果有多首相同专辑的歌曲,只需使用其中一个专辑名称并继续下一个。
我打算做的是用艺术品,专辑名称和艺术家填写表格。然后它会显示下一张专辑,依此类推。这是一个例子:
<td><center><img width="150" src="http://ecx.images-amazon.com/images/I/51Ey1zeerzL.jpg"><br><strong>The Wall</strong><br>Pink Floyd</center></font></a></td>
<td><center><img width="150" src="http://stcmjfpp1312.files.wordpress.com/2012/09/led-zeppelin-mothership.jpg"><br><strong>Mothership</strong><br>Led Zeppelin</center></td>
<td><center><img width="150" src="https://s3.amazonaws.com/NRNArt/Slightly-Stoopid--Top-Of-The-World.jpg"><br><strong>Top of the World</strong><br>Slightly Stoopid</center></td>
我的MySQL表:
mysql> DESCRIBE musicinfo;
+----------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+----------------+
| auto | int(11) | NO | PRI | NULL | auto_increment |
| file | varchar(150) | YES | | NULL | |
| artist | varchar(150) | YES | | NULL | |
| album | varchar(150) | YES | | NULL | |
| song | varchar(150) | YES | | NULL | |
| albumurl | varchar(500) | YES | | NULL | |
| username | varchar(150) | YES | | NULL | |
| filesize | varchar(9999) | YES | | NULL | |
+----------+---------------+------+-----+---------+----------------+
所以我不希望出现同一张专辑的多个副本。希望有人理解并能够至少给我一些提示。
答案 0 :(得分:2)
简单攻击MYSQL的内部属性GROUP BY
SELECT * FROM songs GROUP BY album_title
这将生成一个包含不同album_title的歌曲表,并且相应于album_title显示的歌曲取决于MYSQL表索引(B + Tree)和所有。
GROUP BY
的属性 - 如果有多个组副本,则将它们合并为一个副本,并允许您处理聚合值
SELECT *,count(*)as numsongs FROM songs GROUP BY album_title
这将为您提供每张专辑中的歌曲数量
答案 1 :(得分:1)
我没有专门针对MySQL的经验,但试试这个:
SELECT DISTINCT
albums.albumurl
,albums.album
,(SELECT song FROM musicinfo WHERE album = albums.album ORDER BY song ASC LIMIT 0,1) AS firstsong
FROM musicinfo AS albums
(SELECT song FROM musicinfo WHERE album = albums.album ORDER BY song ASC LIMIT 0,1)
是一个子查询,它将按字母顺序选择相册中的第一首歌。
我真的希望MySQL允许在表名上使用别名。
答案 2 :(得分:-1)
如果您想为每个专辑只显示一首歌曲,则必须更改在您的页面加载时执行的SQL查询。
您可以使用例如DISTINCT语句:http://www.w3schools.com/sql/sql_distinct.asp