select writer,count(*) from table where write like '%XX%' group by writer 试试吧,不知道对不对
你在建两个这样的表: 1,发表文章的信息表 2,作者信息表 这两个表一个作者ID是一一对应的! select count(*) from 作者表 a ,文章表 b where a.id=b.id
select 作者表.writer, count(*) from 文章表, 作者表 where 文章表.writer like '%' + 作者表.writer group by 作者表.writer
如果你现在的文章表里有作者的名字,那就这样看看! select count(*) from 文章表 where 作者名 like '王%'
select 作者表.writer,count(文章表.文章ID) from 作者表 left join 文章表 on 作者表.writer like '%文章表.作者%' group by 作者表.writer
首先你的逻辑有点问题,不能统计所有的作者。 分析: 1.如果是一般查询,writer没有意义,文章表中的作者字段是多个什么作者的集合,这个结果没有意思。该查询只能统计某一个作者发表了多少文章 select count(*) form 文章表 where writer like '%writeValue%'2.考虑子查询: select 作者表.write,count(*) form 作者表 exists (select 文章表 .write form 文章表 where 文章表.write like %作者表..write) group by 作者表.write 这个查询仍有存在问题,统计的结果有可能只是1 3.考虑联接查询: select 作者表.write,count(*) form 作者表 where 文章表.write like %作者表.write% group by 作者表.write.
SELECT a.作者名 ,(SELECT COUNT(*) FROM 文章的表 b WHERE b.作者列表 LIKE '%' + a.作者名 + '%') AS 文章数 FROM 作者资料的表 a
成功解决:select 作者表.name as writer,count(*) as cnt from 文章表,作者表 where 文章表.writer like '%'+作者表.name+'%' group by 作者表.name order by cnt
试试吧,不知道对不对
1,发表文章的信息表
2,作者信息表
这两个表一个作者ID是一一对应的!
select count(*) from 作者表 a ,文章表 b where a.id=b.id
from 文章表, 作者表
where 文章表.writer like '%' + 作者表.writer
group by 作者表.writer
select count(*) from 文章表 where 作者名 like '王%'
分析:
1.如果是一般查询,writer没有意义,文章表中的作者字段是多个什么作者的集合,这个结果没有意思。该查询只能统计某一个作者发表了多少文章
select count(*) form 文章表 where writer like '%writeValue%'2.考虑子查询:
select 作者表.write,count(*) form 作者表 exists (select 文章表 .write form 文章表 where 文章表.write like %作者表..write)
group by 作者表.write
这个查询仍有存在问题,统计的结果有可能只是1
3.考虑联接查询:
select 作者表.write,count(*) form 作者表 where 文章表.write like %作者表.write%
group by 作者表.write.
,(SELECT COUNT(*) FROM 文章的表 b
WHERE b.作者列表 LIKE '%' + a.作者名 + '%') AS 文章数
FROM 作者资料的表 a