php数据库怎么分组,php - MySQL 怎样分组查询

有一个user表,表中有两个字段分别是username和city,表中有3条条记录。

username city

张三 北京

张三 上海

李四 北京

如果只是查询张三和李四各有多少人,可以通过下面语句查询

select username,city,count(*)

from user

group by username

问:怎样查询在不同城市叫张三和李四的人各有多少个呢?

我希望显示的结果是:

张三 共2人 北京1人 上海1人 ...

李四 共1人 北京1人 上海0人 ...

所以通过通过下面查询是不可行的。这会导致出现重复行,而且也不能统计张三有多少人。

select username,city,count(*)

from user

group by username,city

张三 1

张三 1

李四 1

我需要的结果是:

张三 2 1 1

李四 1 1 0

==============================================================

下面是我的PHP代码,如果单纯一次查询不能实现,那PHP应怎样写呢?

$db = new MySQLi(DB_HOST, DB_USER, DB_PASSWD, DB_NAME, DB_PORT);

$query = "

SELECT username, count( * )

FROM user

GROUP BY username

")

$result = $db->query($query);

$num_rows = $result->num_rows;

$num_cols = $result->num_fields;

echo '

for ($i=0;$i

$rows = $result->fetch_assoc();

echo '

';

foreach($rows as $cols){

echo '

'.$cols.'';

}

echo '

';

}

echo '

';

?>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值