Sql 使用LIKE从没有联接的内部查询中查找计数

Sql 使用LIKE从没有联接的内部查询中查找计数,sql,Sql,因此,我试图在一个表中生成艺术家列表&查找不同表中所有行中与名称相似但不精确的匹配项的总数。我不能加入这些表格,因为他们没有一个列可以加入 当我使用预设的艺术家名称运行内部查询时,它会返回正确的计数。 但是,作为内部查询运行时,它总是为计数返回0 只是好奇是否有人知道我如何使用sql实现这一点,或者是否可以实现这一点。否则我可以通过一些循环来解决它。下面是我正在做的一个例子: SELECT ar.name, (SELECT COUNT(*) FROM audio au WHERE au

因此,我试图在一个表中生成艺术家列表&查找不同表中所有行中与名称相似但不精确的匹配项的总数。我不能加入这些表格,因为他们没有一个列可以加入

当我使用预设的艺术家名称运行内部查询时,它会返回正确的计数。 但是,作为内部查询运行时,它总是为计数返回0

只是好奇是否有人知道我如何使用sql实现这一点,或者是否可以实现这一点。否则我可以通过一些循环来解决它。下面是我正在做的一个例子:

SELECT ar.name, 
    (SELECT COUNT(*) FROM audio au WHERE au.artist LIKE('%'+ar.name+'%')) AS count
FROM artist ar
ORDER BY ar.name ASC;

这就是你要找的

SELECT ar.name, count(*) as count
FROM artist ar, audio au
WHERE (ar.artist like '%'+ar.name+'%')
Group by ar.Name
ORDER BY ar.name ASC;
尝试:

SELECT ar.name, count(*) as count
FROM artist ar, audio au
WHERE au.artist LIKE('%'+ar.name+'%'))
GROUP BY ar.name