【问题标题】:Select all records of a maximum column from codeigniter从codeigniter中选择最大列的所有记录
【发布时间】:2013-11-06 12:40:05
【问题描述】:

我正在使用 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);
}

【问题讨论】:

    标签: php sql oracle codeigniter


    【解决方案1】:

    试试这个:

    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>';
    }
    

    【讨论】:

    • 嗨,Nil'z.,这不起作用..我得到的错误不是单个组组函数
    • 你能发布你的$this-&gt;db-&gt;last_query()生成的查询吗?
    【解决方案2】:

    这将返回 $champs_select 的值(最大值行的特定字段)。您还可以将特定条件放入数组 => $where

    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;
    }
    
    ?>
    

    【讨论】:

      【解决方案3】:
      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);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-02
        • 1970-01-01
        相关资源
        最近更新 更多