【问题标题】:Mysql returns duplicate results with numbered keyMysql返回带有编号键的重复结果
【发布时间】:2015-06-26 21:27:35
【问题描述】:

我在 MySQL 上进行了 SELECT 查询并得到了这个结果。

问题是如何删除第二个重复的结果,例如我们使用列表中的第一个项目。 “0”:“1”是“id”的副本:“1”我宁愿使用“id”而不是“0”作为应用程序稍后的键。我怎样才能删除它以简化结果。我确实注意到“0”表示第一列,因为连续的列加起来是 1。

这是我运行的 $query。

SELECT id FROM clubsinformation WHERE :comparisonTime < updateTime

【问题讨论】:

  • 分享查询、结果、结构
  • 请发布您的代码。
  • 你为什么不直接选择ID 而不是你想要获取ID的整个数据(*)? SELECT id FROM...
  • 顶部显示的图像仅显示选择 ID。我试过只选择 ID,结果是第一张图片。

标签: php mysql pdo duplicates


【解决方案1】:

这很可能是由获取模式引起的,您只需要通过关联索引来获取它,因为现在您同时包括关联索引和数字索引获取:

无论您使用什么 DB API,MySQLiPDO,只需将其设置为关联即可。

所以它不包含数字索引,只包含作为键的列名:

所以这大致看起来像在代码中(从查看您的查询占位符来看,它似乎是 PDO,所以我将起草一个 PDO 示例)

$data = array(); // container
$query = 'SELECT * FROM clubsinformation WHERE :comparisonTime < updateTime';
$select = $db->prepare($query);
$select->bindValue(':comparisonTime', $comparisonTime);
$select->execute();

while($row = $select->fetch(PDO::FETCH_ASSOC)) { // associative
    $data[] = $row; // only includes column names
}

// then finally, encode
echo json_encode($data);

// OR SIMPLY
// $data = $select->fetchAll(PDO::FETCH_ASSOC); // associative
// echo json_encode($data);

通过PDO API 获取。如果您使用MySQLi,您仍然可以使用基本思想。

【讨论】:

  • @user3526002 很高兴这有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 2021-09-03
  • 2015-08-23
  • 2012-03-27
相关资源
最近更新 更多