我正在尝试从数据库中显示音乐信息。我通过这个SQL语句获得了信息:
SELECT artist.Artist,
artist.Real,
artist.Genre,
album.Album,
album.Year,
album.Image,
song.Song,
song.Feat,
song.Time,
CASE
WHEN song.Song LIKE :1 THEN \'song\'
WHEN album.Album LIKE :1 THEN \'album\'
WHEN artist.Genre LIKE :1 THEN \'genre\'
ELSE \'artist\' END AS "Case"
FROM artist
INNER JOIN album ON album.Artist = artist.Artist
INNER JOIN song ON song.Album = album.Album
WHERE artist.Artist LIKE :1 OR
artist.Real LIKE :1 OR
artist.Genre LIKE :1 OR
album.Album LIKE :1 OR
song.Song LIKE :1
我正在分组中显示信息:艺术家,然后是专辑,然后是歌曲。只有当我显示艺术家和专辑时,才有与歌曲结果一样多的重复。因此,我可能会尝试使用此代码来消除重复项:
for($i = 0; $i < sizeof($row); $i++) {
if($row[$i]['Artist'] != $row[$i-1]['Artist']) {
// html content here
}
}
我正在尝试订购歌曲,以便首先显示最受欢迎的歌曲(将ORDER BY song.Click DESC
添加到结尾)。所以现在,当显示内容时,会再次出现重复,因为当前的$row
并不总是重复。
这就是为什么我想知道我是否可以ORDER
只有歌曲,以便我的重复删除代码仍然有用。
答案 0 :(得分:1)
SELECT artist.Artist,
artist.Real,
artist.Genre,
album.Album,
album.Year,
album.Image,
song.Song,
song.Feat,
song.Time,
CASE
WHEN song.Song LIKE :1 THEN \'song\'
WHEN album.Album LIKE :1 THEN \'album\'
WHEN artist.Genre LIKE :1 THEN \'genre\'
ELSE \'artist\' END AS "Case"
FROM artist
INNER JOIN album ON album.Artist = artist.Artist
INNER JOIN song ON song.Album = album.Album
WHERE artist.Artist LIKE :1 OR
artist.Real LIKE :1 OR
artist.Genre LIKE :1 OR
album.Album LIKE :1 OR
song.Song LIKE :1
Group by artist.Artist,
artist.Real,
artist.Genre,
album.Album,
album.Year,
album.Image,
song.Song,
song.Feat,
song.Time,