我有三个字段的表格。
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中是否存在任何函数?
请帮我弄清楚这个问题。
提前致谢。
答案 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