簡體   English   中英

最近一次的codeigniter搜索查詢

[英]codeigniter search query with most recent time

我在db消息和messages_recipient中有兩個表

消息表具有以下列

message_id user_id消息created_at

messages_recipient表具有以下列

message_recipient_id user_id message_id

發送者ID存儲在消息中,接收者ID存儲在messages_recipient中

我有以下查詢來獲取發送給登錄用戶的消息

$this->db->select('messages.user_id');
  $this->db->from('messages');
  $this->db->join('messages_recipients','messages.message_id= messages_recipients.message_id');
  $this->db->where( 'messages_recipients.user_id',$sende_id );
  $query = $this->db->get();

它提供了所有發送給用戶的消息,但我想從同一用戶獲取最新發送給用戶的消息

  $this->db->select('messages.user_id');
  $this->db->from('messages');
  $this->db->join('messages_recipients','messages.message_id = messages_recipients.message_id');
  $this->db->where( 'messages_recipients.user_id',$sende_id );
  $this->db->order_by("created_at", "desc");
  $this->db->limit(2);
  $query = $this->db->get();

可能對您有所幫助。在代碼點火器中按功能和限制使用順序,您將實現所需的功能。

您可以使用類似的查詢

$this->db->select('messages.user_id');
  $this->db->from('messages');
  $this->db->join('messages_recipients','messages.message_id= messages_recipients.message_id');
  $this->db->where( 'messages_recipients.user_id',$sende_id );
  $this->db->order_by("created_at", "desc");
  $this->db->limit(1);

只需在這里我按日期的降序排列您的行,然后選擇第一行即最新行。

希望這可以解決您的問題。

暫無
暫無

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

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