我是數據庫的新手。我正在使用mysqlite3
組織音樂。我在Music
表中有ArtistName
,SongTitle
和AlbumTitle
字段。數據庫的主要目的是查詢它並返回所有歌曲少於3首的藝術家。構建一個數據庫,計算類似的條目
爲了達到這個目的,我想我需要某種「歌曲數量」條目,每當我從同一個藝術家添加一首歌曲時,該條目就會增加。但是,我不確定如何創建動態條目。我知道AUTO_INCREMENT關鍵字,它具有我正在尋找的動態屬性,但不是有條件遞增的。
想法?
我是數據庫的新手。我正在使用mysqlite3
組織音樂。我在Music
表中有ArtistName
,SongTitle
和AlbumTitle
字段。數據庫的主要目的是查詢它並返回所有歌曲少於3首的藝術家。構建一個數據庫,計算類似的條目
爲了達到這個目的,我想我需要某種「歌曲數量」條目,每當我從同一個藝術家添加一首歌曲時,該條目就會增加。但是,我不確定如何創建動態條目。我知道AUTO_INCREMENT關鍵字,它具有我正在尋找的動態屬性,但不是有條件遞增的。
想法?
除非我很想念你的要求的東西,你不需要songCount
列,你可以很容易地得到具有小於3首歌曲,但使用以下查詢藝術家:
select artistname
from music
group by artistname
having count(SongTitle) <3
這將返回artistname
對於每首歌曲總數少於三首歌曲的藝術家而言。
然後,如果你想在這個擴展,你可以使用,這將返回所有列從music
表所在的藝術家有不到3首歌曲如下:
select m1.*
from music m1
where exists (select artistname
from music m2
where m1.artistname = m2.artistname
group by artistname
having count(SongTitle) <3)
你不需要一個「計數」字段。試試這個...
SELECT ArtistName
FROM Music
GROUP BY ArtistName
HAVING Count(ArtistName) < 3
這是假設每首歌曲只有一個條目。