使用php从表中按顺序排列数据

时间:2013-09-24 10:11:22

标签: php mysql zend-framework sql-order-by on-duplicate-key

我正在尝试使用Zend将数据从feed插入数据库,并在表中添加date_updated列,以便每当Feed中的文章更新时,该列也会更新。但问题是,第一篇文章是先插入,然后插入其他文章。因此,当我尝试根据date_updated DESC选择前10篇文章时,最后插入的文章是最重要的,如果我使用ASC,那么较旧的文章将被选中。请建议我如何继续。我写的查询是:

$sql = "INSERT INTO news_article
    (original_article_id, headline,summary, keywords, link, section, topic, date_published, date_updated, content, source_id)
    VALUES (?,?,?,?,?,?,?,?,?,?,?) 
    ON DUPLICATE KEY UPDATE 
        original_article_id = ?,
        headline = ?,
        summary = ?,
        keywords = ?,
        link = ?,
        section = ?,
        topic = ?,
        date_published = ?,
        date_updated = ?,
        content = ?,
        source_id = ?";
$values = array(
    "original_article_id"=>$id,
    "headline"=>$item->title,
    "summary"=>$summary,
    "keywords"=>$keywords,
    "link"=>$item->link,
    "section"=>"property",
    "topic"=>"property",
    "date_published"=>$formattedPubDate,
    "date_updated"=>$currentDate,
    "content"=>$data,
    "source_id"=>"3"
);  
$result = $db->query(
    $sql,
    array_merge(array_values($values), array_values($values))
); 

然后我正在使用

SELECT * FROM news_article ORDER BY date_updated DESC LIMIT 10

1 个答案:

答案 0 :(得分:0)

使用以下查询

SELECT * FROM news_article ORDER BY date_updated DESC LIMIT 0,10

在限制之后,我们需要传递偏移量和记录数量来获取。