【问题标题】:Select the newest data in an SQL table? [closed]选择 SQL 表中的最新数据? [关闭]
【发布时间】:2013-07-12 20:35:33
【问题描述】:

我有一个新闻表,我想在每一行中选择 3 个最新的东西,它们的编号为 1 作为最旧的,我添加的每个数据都会增加一个数字。那么你如何获得三个最新的东西并在不同的地方展示它们呢? (对不起,我想不出如何表达我的问题)

编辑: 我没有喜欢的 html 或任何东西来显示所需的效果,但我可以解释一下。我有一个有 4 行的 SQL 表。 ID、标题、日期和发布。这是一个新闻提要,我想在主页上显示 3 条最新的新闻“文章”。但我不想只将它们显示为列表,我想将标题放在顶部 div 中,在日期旁边,我想按主键 (ID) 对其进行排序,然后将帖子放在 div 下标题和日期。这里尝试向您展示:

标题 |日期 最新消息。等等在这里插入大段新闻等等等等。 标题 |日期 第 2 条最新消息。等等在这里插入大段新闻等等等等。 标题 |日期 第三条最新消息。等等在这里插入大段新闻等等等等。

【问题讨论】:

  • 你按什么分组来选择最新的 3 个?您能否提供包含示例数据和所需结果的表结构?
  • 表达有关 sql 查询的问题的最佳方式是提供表结构、示例数据和基于该示例数据的所需输出。
  • 试图更好地表达它

标签: php sql mysqli


【解决方案1】:

如果我的理解正确,您可以使用 LIMITORDER BY

例子

 `SELECT columns FROM yourtable ORDER BY primary_key DESC LIMIT 0,2`

【讨论】:

  • 在这方面,前三个是 0,2,因为有 0,1,2。
  • 我还更新了问题以使其更加清晰。
  • 哦,是的,你是对的 .. 感谢您的纠正......就获取数据而言,这将起作用
  • ORDER BY 是做 1 到 99 还是 99 到 1?另外,您将如何使 primary_key 自动递增
  • 是按 1 到 99 或 99 到 1 的顺序取决于与它一起使用的 ASCDESC。由于我使用了DESC,所以它将是 99 比 1。对于自动犯罪,您可以参考此 stackoverflow.com/questions/251479/…
【解决方案2】:

首先,请不要使用“日期”作为您的字段名称,假设您将其重命名为 news_date。这个怎么样?

<?php 
$query = mysql_query ("SELECT * FROM yourtable ORDER BY id DESC LIMIT 3");
$number = 1;
while ($result = mysql_fetch_array($query)) { 
    $id = $result['id'];
    $title = $result['title'];
    $news_date = $result['news_date'];
    $post = $result['post'];
?>
    <div name='title'><?php echo $title; ?></div> || <div name='news_date'><?php echo $news_date; ?></div>
    <p>News <?php echo $number; ?></p>
    <p><?php echo $post; ?></p>
 <?php   
    $number++;
    }
?>

【讨论】:

  • 问题已更新,更有意义。此外,ORDER BY 会先显示 #1,然后是 #2,然后是 #3,反之亦然?我还需要知道如何回显结果。就像在一个区域中回显 #3 标题,然后在另一个区域中显示 #2 标题,等等。我不希望它出现在列表中。
  • 我不太明白你的问题,但我更新了我的答案。
  • 我想我可以使用它来达到预期的效果。谢谢。
  • 不客气.. 如果您在实施时遇到问题,请告诉我
  • 如果我错了,请纠正我,但我相信你如何拥有它会列出查询中的所有标题。我想让它说获取最高 ID,而我不知道如何显示所选 ID 的标题/日期/帖子,然后从 ID 中减去 1,并获取该标题/日期/帖子等等。
【解决方案3】:

如果我对您的问题的理解是正确的,您似乎有一个带有行标识符(编号为 1 到 ... /p>

如果是这样:

假设您有一个名为 Books 的表,其结构如下:

Books:
- RowNumber
- Col_1
- Col_2
- ...

您需要做的是运行以下 SQL:

SELECT 
    TOP 3 *
FROM
    Books
ORDER BY
    RowNumber DESC

我希望这会有所帮助:)

【讨论】:

  • 我更新了问题以使其更加清晰。
猜你喜欢
  • 1970-01-01
  • 2021-04-14
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2013-09-04
  • 1970-01-01
  • 2019-12-04
相关资源
最近更新 更多