从codeigniter中选择最大列的所有记录

时间:2013-11-06 12:40:05

标签: php sql oracle codeigniter

我正在使用Oracle11g 我想要做的是选择具有最大更新日期的字段。 下面的代码是在Toad中选择正确的字段。我如何在CodeIgniter中的php脚本中使用它。

select * from performance 
where UPDATE_DATE = (select max(UPDATE_DATE) from  performance)

我在CodeIgniter中有这个,但只选择了UPDATE_DATE列。我还想在字段记录中选择id,shop_name和update_date

function get_last_insert()
{
$this->db->select_max('UPDATE_DATE');
$query = $this->db->get('PERFORMANCE'); 
echo '<pre>' .$this->db->last_query(). '</pre>';

}

确定。经过对stackoverflow的大量研究 正确的答案是

function get_last_insert()
{
$this->db->select('*');
$this->db->where('UPDATE_DATE = (SELECT MAX(UPDATE_DATE) FROM PERFORMANCE)', NULL, FALSE);
$query = $this->db->get('WHOUSE1.DLY_BWR_MAN_PERFORMANCE'); 
print_r($query);
}

3 个答案:

答案 0 :(得分:0)

试试这个:

function get_last_insert()
{
$this->db->select(' id, shop_name, update_date, MAX(UPDATE_DATE) as UPDATE_DATE', false)->get('PERFORMANCE')->row_array(); 
echo '<pre>' .$this->db->last_query(). '</pre>';
}

答案 1 :(得分:0)

这将返回$ champs_select的值(最大行的特定字段)。你还可以在array =&gt;中加入特定条件$哪里     

function getmax_where('performance',$where,'UPDATE_DATE',$champs_select)
{
    $this->db->select_max('UPDATE_DATE');
    $this->db->where($where);
    $maxdate= $this->db->get('performance');

    foreach($maxdate->result() as $row){
        $max= $row->UPDATE_DATE;
    }
    if($max){
    $array=array('UPDATE_DATE'=>$max);

    $array= array_merge($array,$where);

    $this->db->select($champs_select);
    $this->db->where($array);
    $result= $this->db->get('performance');//->result() give all records of a maximum column
    foreach($result->result() as $row){
        $resultat= $row->$champs_select;
    }
    return $resultat;
    }
    return false;
}

?>

答案 2 :(得分:0)

function get_last_insert()
{
$this->db->select('*');
$this->db->where('UPDATE_DATE = (SELECT MAX(UPDATE_DATE) FROM PERFORMANCE)',     NULL, FALSE);
$query = $this->db->get('WHOUSE1.DLY_BWR_MAN_PERFORMANCE'); 
print_r($query);
}