2016-11-25 61 views
0

讓想我在我的表有6條現在如何顯示在MySQL笨最新的唯一記錄

id |  mobile_no |  date 
-------------------------------------------   
    1 |  9999999999 | 11-11-2016 

    2 |  8888888888 | 12-11-2016 

    3 |  9999999999 | 13-11-2016 

    4 |  9999999999 | 16-11-2016 

    5 |  8888888888 | 20-11-2016 

    6 |  8888888888 | 22-11-2016 

當我用MySQL查詢不同的我檢索: -

id |  mobile_no |  date 
-------------------------------------------  
    1 |  9999999999 | 11-11-2016 

    2 |  8888888888 | 12-11-2016 

雖然我想檢索: -

id |  mobile_no |  date 
-------------------------------------------  
    4 |  9999999999 | 16-11-2016 

    6 |  8888888888 | 22-11-2016 

請幫我一下,我必須使用codeigniter mysql來訪問上面的記錄?下面

是我的模型查詢 -

$this->db->select('*'); 

    $this->db->from('miscall_records'); 

    $this->db->distinct(); 

    $this->db->group_by('mobnos'); 

    $this->db->order_by("id", "desc"); 
+0

好 - 你能**包括**有問題的查詢嗎?恐怕我無法進行心靈感應調試。 –

+0

不作爲評論。 **編輯**您的問題,以包含其他信息 –

+0

不知道如何在CI上完成,但SQL應該是在這裏的文檔模式http://dev.mysql.com/doc/refman/5.7/ en/example-maximum-column-group-row.html –

回答

-2

您可以通過手機號碼由子句中使用組組值。獨特的關鍵字不會在這裏工作。

0

如果您想要使用每個ID最高的數據集,則必須使用不同的方法。
您必須首先通過GROUP BY和相應的聚合函數MAX選擇每個編號的最高ID,然後將這些表本身加入到這些鍵上。

SELECT values.* FROM 
(SELECT MAX(id) AS id FROM miscall_records GROUP BY mobile_no) AS keys 
LEFT JOIN miscall_records AS values 
ON keys.id = values.id 
0

你預計SQL查詢:

select a.id, a.mobile_no, a.date from miscall_records a 
where a.id = (select max(b.id) from miscall_records b 
where b.mobile_no = a.mobile_no) group by a.mobile_no 

隨着活動記錄是:

$this->db->select('a.id, a.mobile_no, a.date'); 
$this->db->from('miscall_records a'); 
$this->db->where('a.id = (select max(b.id) from miscall_records b where b.mobile_no = a.mobile_no)'); 
$this->db->group_by('a.mobile_no');  
$query = $this->db->get(); 

或者只使用max

select max(a.id), a.mobile_no, a.date from miscall_records a group by a.mobile_no 

活躍的記錄:

​​