【问题标题】:How can I select the latest entry of mySQL database table? [duplicate]如何选择 mySQL 数据库表的最新条目? [复制]
【发布时间】:2017-07-06 19:26:08
【问题描述】:

我从 mySQL 数据库中选择最新插入的 id。我还想为最新的id 选择合适的name

$pdo = $db->query('SELECT *,MAX(id) AS latest FROM data');
    while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) {
         $id = $row["latest"];
         $name = $row["name"];
    }    

id 的选择运行良好。但没有选择最新的name,而是始终选择我的表格第一行的name。它不适合id

【问题讨论】:

  • 您可以简单地使用order by id DESC 并获取第一个结果
  • 大部分是上面的副本,除了你需要按主键而不是时间戳来排序

标签: php mysql


【解决方案1】:

我想写以下答案,但我不得不承认我发现 e4c5 的答案更好。

SELECT * FROM data where id = (SELECT max(id) FROM data)

【讨论】:

  • 好的,非常感谢
【解决方案2】:

为什么不直接

SELECT name, id FROM data ORDER BY id DESC LIMIT 1

【讨论】:

  • 好的,好主意!我去看看
  • 甚至SELECT *,然后你可以在data中foreach任何东西
  • 用户 mishanon 提出了另一种方法LAST_INSERT_ID(),这些方法有什么优点或区别吗?
  • 如果您使用 LAST_INSERT_ID,您将获得此会话插入的最后一行。哪个可能是也可能不是表中价值最高的 id
  • LAST_INSERT_ID() 仅在您刚刚插入新行并且仍在同一个 MYSQL 会话中时才有效
猜你喜欢
  • 2010-09-08
  • 1970-01-01
  • 2010-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多