mysql - 构建一个计算相似条目的数据库

标签 mysql database sqlite

我是数据库新手。我正在使用 mysqlite3 组织音乐。我的 Music 表中有 ArtistNameSongTitleAlbumTitle 字段。数据库的主要目的是查询并返回所有歌曲少于 3 首的艺术家。

为了实现这一目标,我认为我需要某种“歌曲计数”条目,每次添加同一艺术家的歌曲时该条目都会增加。但是,我不确定如何创建动态条目。我知道 AUTO_INCRMENT 关键字,它具有我正在寻找的动态属性,但不具有条件递增。

想法?

最佳答案

除非我在您的请求中遗漏了某些内容,否则您不需要 songCount 列,否则您可以使用以下查询轻松获取歌曲少于 3 首的艺术家:

select artistname
from music
group by artistname
having count(SongTitle) <3

这将为歌曲总数少于三首的每位艺术家返回艺术家名称

然后,如果您想对此进行扩展,可以使用以下代码,它将返回 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)

关于mysql - 构建一个计算相似条目的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15347882/

相关文章:

java - Sqlite:带条件的嵌套选择

php - 如何使用 Shift-JIS 和 CP932 创建 SQL 注入(inject)攻击?

php - 显示数据库中用户表中的所有数据

java - 使用 SQL REGEXP 查找手机号码

C# SqlConnection 无法连接

android - 如何在微调器中查看数据库值?

mysql - 具有多个不同标准的 UNION SELECT,其中没有真正的 FK

sql - 显示大型结果集

mysql - RoR数据库错误

php - 从 Doctrine2 和 Symfony2 的集合中获取独特的属性?