我需要从mysql表中获取最后一个插入的不同用户ID的msg

时间:2016-03-25 11:21:28

标签: codeigniter

我的表格结构如下:

CREATE TABLE IF NOT EXISTS `trans_query_discussion` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `sender_id` int(11) NOT NULL,
  `receiver_id` int(11) NOT NULL,
  `query_id` int(11) NOT NULL,
  `message_txt` varchar(255) NOT NULL,
  `msg_id` int(11) NOT NULL,
  `created_time` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

3 个答案:

答案 0 :(得分:0)

 $this->db->from(tablename);
 $this->db->order_by('id','DESC');
 $this->db->limit(1);

答案 1 :(得分:0)

假设

  

我希望你需要sender_id为equel

方法01 - ( 我个人推荐

public function FunctionName($id)
{
    $query = $this->db->query("SELECT * FROM trans_query_discussion WHERE sender_id = '$id' ORDER BY id DESC LIMIT 1 ");
    $result = $query->result_array();
    print_r($result);
}

方法02

public function FunctionName($id)
{
    $limit = 1;
    $offset = 0;
    $this->db->get_where('trans_query_discussion', array('sender_id' => $id), $limit, $offset);
    $this->db->order_by('id','desc');
    $query = $this->db->limit(1);
    $reslut = $query->result_array();
    print_r($reslut);
}

答案 2 :(得分:0)

谢谢大家!为了你的支持,我通过更多的头部敲击找到了解决方案:) 在像::

这样的查询中

从trans_query_discussion中选择* WHERE id IN(SELECT MAX(id)FROM trans_query_discussion WHERE sender_id IN(SELECT DISTINCT(sender_id)FROM trans_query_discussion where sender_id!= 52)GROUP BY sender_id)ORDER BY created_time DESC

相关问题