【问题标题】:MySQL returning Different results on PHP and PHPMyadmin using same QueryMySQL 使用相同的查询在 PHP 和 PHPMyadmin 上返回不同的结果
【发布时间】:2020-02-15 19:19:44
【问题描述】:

1- 这是检索 MySQL 行的简单 php 代码

2- 这是上述代码的查询返回结果。

3- 但是当我在 phpmyadmin 中复制粘贴相同的查询时 100% 肯定在同一个数据库上 它返回不同的结果。见下面的截图;

这让我大吃一惊,两天以来一直想弄清楚但没有找到任何解决方案。 可能有什么问题?

【问题讨论】:

  • 你为什么发布图片?你的代码在哪里?你来这里的时间已经够长了。
  • 这里的大多数人都希望样本数据和预期结果为格式化文本,而不是图像。此外,我无法阅读那个微小的图像文本。
  • 该查询没有好的理由使用 GROUP BY。
  • @Uueerdo 但有很多不太好的原因。特别是,我经常看到在 ORDER BY 更合适的地方使用 GROUP BY。不幸的是,旧版本的 MySQL 可以让你这样做并且侥幸成功。
  • 其实跟查询和代码无关,是我弄错了mysql的一些设置或信息。简单查询是相同的查询在不同的平台上给出不同的结果。我期待提供第一个答案的答案,但我也不明白:(

标签: php mysql sql phpmyadmin


【解决方案1】:

您的查询是具有group by t.destination 的聚合查询。

但是,它选择了一堆不是聚合函数参数的其他列。也没有证据表明它们在功能上依赖于 t.destination

令人高兴的是,这种草率在大多数数据库上都会产生语法错误。令人高兴的是,它会在最新版本的 MySQL 中生成语法错误(使用默认设置)。不高兴。有些人在旧版本的 MySQL 上编写这样的查询(或更改控制它的标志)。 . .然后想知道为什么代码不能按预期工作。

额外的值来自每个组中的不确定匹配行。在不同时间运行查询可能会导致这些“裸”列的值不同。使用不同的设置(或不同的来源)运行也可能导致不同的结果。

【讨论】:

  • 好电话。我犯了同样的错误。我建议将“GROUP BY colA ORDER BY colB”更改为“ORDER BY colA, colB”。我怀疑这是首先将 GROUP BY 添加到查询中的原因。
  • @UncaAlby 它将返回所有行,我想显示每个目的地最便宜的包裹。
  • @Wasima。 . . .这回答了为什么结果不同 - 这就是这个问题所要问的。如果您需要解决实际问题的帮助,请提出问题。
  • 为什么会被匿名否决?真的有人不同意吗?
  • SMH.. 显然@GordonLinoff 需要更多的声誉来赢得某人的信任!现在,我对开车的投票者有时会抓住我并不感到难过:p
猜你喜欢
  • 1970-01-01
  • 2012-12-18
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
  • 2014-09-24
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
相关资源
最近更新 更多