MySQL多个重复行 - 只返回一个

时间:2013-10-14 17:48:12

标签: php mysql sql database

我通过脚本将iTunes资料库导入到表格中。该脚本没有捕获任何重复的歌曲标题和艺术家。因此,我有很多重复的歌曲。

trackid    song    artist   tracknum
4628       Title1  StackO      2
6846       YMCA    (blank)     11
9043       YMCA    (blank)     11
9381       YMCA    (blank)     11
9382       Title2  StackO      3

当歌曲,艺术家和tracknum都相同时,我如何编写我的SQL语句以仅返回YMCA(4628)行的第一个“trackid”?它看起来应该是这样......

trackid    song    artist   tracknum
4628       Title1  StackO      2
6846       YMCA    (blank)     11
9382       Title2  StackO      3

这是我现在的SQL ...

"SELECT DISTINCT * FROM wp_tracks WHERE title LIKE '%" . $song . "%' AND artist LIKE '%" . $artist . "%'

这让我感到困惑了一段时间。

谢谢。

2 个答案:

答案 0 :(得分:5)

SELECT song, artist, tracknum, MIN(trackid) AS first_track_id
FROM wp_tracks
GROUP BY song, artist, tracknum

添加WHERE子句以选择要列出的曲目。

答案 1 :(得分:0)

你必须提到你想成为DISTINCT的列,在你的情况下song

SELECT DISTINCT song FROM wp_tracks
WHERE title LIKE '%" . $song . "%' AND artist LIKE '%" . $artist . "%