繁体   English   中英

MySQL-如何查询以在单个查询中获取所有记录和特定列的不同计数

[英]MySQL-how to query to get all records and distinct count of specific column in single query

我有三个字段的表。

id name place
 1 A    x
 2 A    v
 3 B    z
 4 A    a

我已经有这样的查询,

  select Id
       , Place 
    from tbname 
   where Name like '" . mysql_real_escape_string( $name, $sql ) . "'

这也将与'%'进行通配符匹配

现在,我想要的是在上述查询中对“名称”字段的不同值进行计数,而不影响先前的结果。

如果通配符与“名称”字段中的所有值匹配,则计数为2。

如果我愿意

select Id
     , count(distinct Name) as count
     , Place from tbname 
 where Name like '" . mysql_real_escape_string( $tidbit, $sql ) . "'

这将返回,

Id:1
count:2
Place:x

但是我想要所有的比赛以及计数,

  Id:1,2,3,4
  count:2
  Place:x,y,z,q

有没有办法在单个查询中执行此操作,或者在sql或php中有任何函数?

请帮助我找出这个问题。

提前致谢。

我认为

select Res1.id,Res1.cnt,Res2.place from (select id,count(distinct Name) cnt 
from tbname groupby id) res1 inner join
select  distinct id ,place from tbname group by id ) res2 on 
res1.id=res2.id 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM