在 mySqli 中选择未正确返回排序和 PHP 未区分差异



我有一个表,其中包含来自某种类型业务的 16,000 多条记录。 我正在查询该表以获取每个城市的文件,但我只显示一次城市以及该城市中存在业务的实例数。 "城市#5"(城市有五个这样的企业(,但我重复某些城市,好像他们的名字不同,他们回来了,但经过审查,他们没有不同。

我已经检查了空格或缺少空格,无法弄清楚为什么查询认为某些企业的名称不同,而实际上它们是相同的。 有没有办法在我的比较中更具体?

输出示例:

柯林斯堡 #1 摩根堡 #1 柯林斯堡 #87 加兰堡 #1 摩根堡#13

(注意柯林斯堡和摩根堡:这是复制和粘贴的(

这是代码:

$rscc = sQ("SELECT corsCity FROM      corsf
ORDER BY  corsCity    ASC");
if(!$rscc) {
echo "Houston... we have a problem!";
}
else {
$rows        = 0;
$totalcities = 0;
$totalrows   = 0;
$lastcity    = 'xxxx';
while($ccrow = mysqli_fetch_assoc($rscc)) {
$currentcity = $ccrow['corsCity'];
if ($lastcity != $currentcity) {
if ($lastcity != 'xxxx') {
$rows++;
$totalcities++;
echo "$lastcity #$rows <br>";
$rows = 0;
}
$lastcity = $currentcity;
$totalrows++;
}
else {
$rows++;
$totalrows++;
}
}
echo "Total cities = $totalcities <br>";
echo "Total businesses = $totalrows <br>";
}
$rscc->close();

顺便说一句,"sQ"仅表示"$connection->query"。

其中大部分可以在SQL中完成,在PHP中你只有一个简单的循环。

使用GROUP BYCount()来获取每个城市的号码。使用WITH ROLLUP计算总计(如果 GROUP BY 中有几列,则计算小计,但情况并非如此(

SELECT corsCity AS City, COUNT(*) AS Nbr
FROM corsf 
GROUP BY corsCity WITH ROLLUP
ORDER BY corsCity

您的查询将返回:

City        |   Nbr
-------------------
Chicago     |   8
Houston     |   10
Los Angeles |   2   
New York    |   5
NULL        |   25

如果城市是NULL,它是所有企业的总和

最新更新