MySQL-如何查询以获取单个查询

时间:2015-07-14 07:03:53

标签: php mysql

我有三个字段的表格。

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 ) . "'

这也会与'%'

进行外卡匹配

现在我想要的是在上面的查询中计算'Name'字段的不同值而不影响之前的结果。

如果通配符与“名称”字段中的所有值匹配,则计数为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中是否存在任何函数?

请帮我弄清楚这个问题。

提前致谢。

1 个答案:

答案 0 :(得分:-1)

我想

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