sql limit命令无法正常工作

时间:2014-02-07 05:32:42

标签: mysql sql

我在sql select中遇到问题所以表格是这样的:

id   uid  content         date        type
2    1    lorem ipusem#1  1391817600  1
3    1    lorem ipusem#2  1391899005  1
...

我想做的是选择未来的前5个(在这种情况下为2)并按日期排序(以选择现在最接近的五个按摩) 所以这是我的SQL查询

('SELECT `content` FROM `mvc` WHERE type = 1 and `date` > '.$date.' ORDER BY `date` ASC limit 5') 

(我从代码中复制了这一行) 由于某种原因,查询只选择第一个,即使它们都适合查询(当我使用Desc时,另一个被选中)

<?php
class getAnnounc {
    private $db;
    private $raw;
    public function getAnnounc($database){
        $this-> db = $database;
        $this->getRaw();
    }
    private function getRaw(){
        $date = time();
        $this->raw = $this->db->query('SELECT `content` FROM `mvc` WHERE type = 1 and `date` > '.$date.' ORDER BY `date` DESC LIMIT 5')or die(mysqli_error());
        $this->raw = $this->raw->fetch_assoc();
        echo var_dump($this->raw);
    }
}
header('Content-Type: text/html; charset=utf-8');
$db = new mysqli('localhost','root','','ortMallot') or mysqli_error();
$db->query("SET NAMES 'utf8'");
new getAnnounc($db);

1 个答案:

答案 0 :(得分:0)

仅供参考,你想要降序,而不是提升:

ORDER BY `date` DESC LIMIT 5

它没有解释为什么你只获得两者中的一个,但我怀疑你的PHP变量与WHERE条件的关系可能存在问题。