【问题标题】:MYSQL query results cut short when Sort is DESC and limited当 Sort 为 DESC 且受限时,MYSQL 查询结果会缩短
【发布时间】:2010-03-12 19:57:36
【问题描述】:

看到一些奇怪的东西;正在寻求帮助。

我有一个查询,如下所示:(使用 CodeIgniter,顺便说一句)

'SELECT * FROM registers WHERE client_id='.$clid .' ORDER BY date DESC LIMIT '.$num

$num 通过函数调用传入(并且它==15),并且正确回显。但运行它只返回 10 行。如果我明确地将$num 设置为 15,同样的事情。如果我将$num 设置为 20,它将返回 11 行! WTF 在我的圆顶里!

然而,如果我将顺序设置为ASC,而不是DESC,原始查询将按预期运行。

查询在 CocoaMySQL 中以任一排序运行时返回预期的行数。

有什么想法吗?

【问题讨论】:

  • 你的 MySql 查询日志告诉你什么?什么 SQL 实际登陆数据库?
  • 日志中一切正常:SELECT * FROM registers WHERE client_id=000690 ORDER BY date DESC LIMIT 15

标签: mysql codeigniter


【解决方案1】:

它返回正确数量的结果。我有一个子句阻止在某些条件下打印行,并且它们正在被满足。检查 num_rows() 并且它是正确的,所以找到了有问题的代码。

【讨论】:

    【解决方案2】:
    $this->db->select('*');
    $this->db->from('registers');
    $this->db->order_by('id','DESC'); //client_id='.$clid 
    $this->db->limit(4); //'.$num
    $query_result = $this->db->get();
    $hasil = $query_result->result();
    return $hasil;
    

    【讨论】:

    • 请解释一下你的回答
    • 使用 CodeIgniter 查询 db 中的最后一行,
    猜你喜欢
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 2015-07-19
    • 2013-06-12
    • 2019-10-09
    • 2010-10-01
    • 1970-01-01
    相关资源
    最近更新 更多