mysql - 如何在 codeigniter 中正确为 MySQL `GROUP BY` `FROM_UNIXTIME` ?

标签 mysql codeigniter

到目前为止我尝试过的代码:

$this->db->group_by('FROM_UNIXTIME(mec.dt_start,"%Y-%D-%M"');

但出现这样的错误:

GROUP BY FROM_UNIXTIME(mec.dt_start, `"%Y-%D-%M")`

有人知道如何解决这个问题吗?

额外信息:

function get_events_data($limit='',$offset='',$type='calendar')
{
    $search_input = $this->session->userdata('search_input');
    $this->db->set_dbprefix('');

    db_select('mu.fullname');
    db_select('mu.username');
    db_select('me.event_id');
    db_select('me.user_id');
    db_select('me.user_type');
    db_select('me.event_name');
    db_select('me.url_id');
    db_select('me.event_details');
    db_select('me.is_payment_required');
    db_select('mec.remarks');
    db_select('mec.fee');
    db_select('mec.max_pax');
    db_select('mec.bal_pax');
    db_select('mec.deleted_status');
    db_select('mec.calendar_id');
    db_select('mec.event_state_id');
    db_select('mec.venue_location');
    db_select('mec.dt_start,mec.dt_end');
    db_select('mec.approval_status,mec.deleted_status');
    db_where('mec.dt_start >= ',time());
    db_where('mec.dt_start <=',strtotime(MAX_TIME_EVENT_CALENDAR_DISPLAY));
    db_join('m_event_calendar mec','mec.event_id=me.event_id','left');
    db_join('m_users mu','mu.user_id=me.user_id','left');
    if($type=='event_list' || $type == 'url_id'):
        db_group('FROM_UNIXTIME(mec.dt_start,"%Y-%D-%M")');
    endif;
    db_order('FROM_UNIXTIME(mec.dt_start)','asc');
    if($this->curuser):
        db_where('(me.user_id = '.$this->curuser['user_id'].' or me.approval_status = '.EVENT_APRROVAL_STATUS_APPROVED.')');
    else:
        db_where('me.approval_status',EVENT_APRROVAL_STATUS_APPROVED);
    endif;
    db_where('mec.deleted_status',EVENT_DELETED_STATUS_NO);
    if(!empty($search_input)):
        $this->db->like('me.event_name', $search_input,'match');
        $this->db->or_like('me.venue_location', $search_input,'match');
    endif;
    if($limit == '' || $offset == ''):
        $sql = db_get('m_event_list me');
    else:
        $sql = db_get('m_event_list me', $limit,  uri_segment($offset));
    endif;      

    $array = $sql->result_array();

    $this->db->set_dbprefix('m_');
    if($array):
        return $array;
    endif;
}

注释(我的自定义数据库助手):

db_select --> stand for $this->db->select
db_group --> stand for $this->db->group_by
db_get --> stand for $this->db->get

最佳答案

尝试检查以下内容:

$this->db->group_by('FROM_UNIXTIME(mec.dt_start,"%Y-%D-%M")',FALSE);

关于mysql - 如何在 codeigniter 中正确为 MySQL `GROUP BY` `FROM_UNIXTIME` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34416677/

相关文章:

mysql - 使用正则表达式搜索并替换 Mysql 中的 JSON

mysql - 选择每个对话的最新消息

apache - htaccess 使用 index.php 重定向到 https

php - SQL Join SUM 无法正常工作

php - 代码点火器, mysql

java - eclipselink 出现 MySQL 语法错误异常

php - 带 child 怎么办?

php - 我的 codeigniter 验证码未生成图像

mysql - SQL 返回 NULL 行和相应的下一行

codeigniter - 在 CodeIgniter 中重命名上传的文件