选择SQL表中的最新数据?

时间:2013-07-15 03:45:30

标签: php sql mysqli

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

编辑: 我没有像html或其他任何东西那样显示出预期的效果,但我可以解释一下。我有一个有4行的SQL表。 ID,TITLE,DATE和POST。这是一个新闻提要,我想在主页上显示3条最新的新闻“文章”。但我不想只是将它们显示为列表,我想将标题放在顶部div中,在日期旁边,我想通过主键(ID)对其进行排序,然后在div中将帖子放入标题和日期。这是试图向您展示:

Title | Date
Newest news. Etc. Insert Big Paragraph of news here etc etc.

Title | Date
2nd Newest news. Etc. Insert Big Paragraph of news here etc etc.

Title | Date
3rd Newest news. Etc. Insert Big Paragraph of news here etc etc.

3 个答案:

答案 0 :(得分:1)

首先,请不要使用'date'作为您的字段名称,假设您将其重命名为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++;
    }
?>

答案 1 :(得分:0)

如果我找到你,你可以使用LIMITORDER BY

实施例

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

答案 2 :(得分:0)

如果我对您的问题的理解是正确的,那么您似乎有一个带有行标识符的表(编号为1到... n),并且您想运行一个查询,该查询将带回最近插入的3个记录?< / p>

如果是这样的话:

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

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

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

SELECT 
    TOP 3 *
FROM
    Books
ORDER BY
    RowNumber DESC

我希望这会有所帮助:)