簡體   English   中英

CodeIgniter-按順序分組(未按預期工作)

[英]CodeIgniter - Group by with order by not working as expected

所以我得到了這個查詢:

    $CI->db->where('user_id', $CI->session->userdata('user_id'));
    $CI->db->where('amount >', 0);
    $CI->db->order_by('ur_time', 'desc');
    $CI->db->group_by('resource_id');
    $query = $CI->db->get('users_resources');
    $resources = $query->result();

我的問題是:order_by'ur_time'並沒有真正起作用。 如果我有2行,其中一行的金額為10000和ur_time 1384303464,另一行的金額為100和ur_time 1384304656我仍然會得到該行,金額為10000。

我究竟做錯了什么?

編輯:也許我必須解釋一下。 假設我有一些行:

ur_id | ur_time     | user_id | resource_id | amount

1     | 1384304656  | 1       | 1           | 100
2     | 1384303464  | 1       | 1           | 10000
3     | 1384303464  | 1       | 2           | 200
4     | 1384304656  | 1       | 2           | 20000

我想在這里得到的結果是:兩行,一個具有ur_id 1,另一個具有ur_id 4,因為對於每個resource_id,我都希望具有ur_time最高的行。 我希望現在很清楚。

PS:我需要數量> 0子句,因為可能會有負數,但我不希望它們出現在結果中。

嘗試在查詢中添加此內容,看看它們是否會合並到您的select語句中

$CI->db->select('*');
$CI->db->select_max('ur_time' , 'max_ur_time'); // this will produce max(ur_time) as max_ur_time
$CI->db->where('user_id', $CI->session->userdata('user_id'));
$CI->db->where('amount >', 0);
$CI->db->order_by('ur_time', 'desc');
$CI->db->group_by('resource_id');
$query = $CI->db->get('users_resources');
$resources = $query->result();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM