Codeigniter SET查询变量

Fab*_*bio 6 php mysql codeigniter

我需要使用Codeigniter查询生成器执行此查询:

SET @row_number:=0;

SELECT Id, @row_number:=@row_number+1 as Position
FROM my_table
WHERE date='2015-12-26'
Run Code Online (Sandbox Code Playgroud)

我可以通过使用"$ this-> db-> query"函数来完成它,如下所示:

    $query = 'SET @row_number:=0;';
    $this-> db-> query ($query);

    $query = 'SELECT Id, @row_number:=@row_number+1 as Position';
    $query = $query . ' FROM my_table';
    $query = $query . ' WHERE date=\'' . $data . '\''
Run Code Online (Sandbox Code Playgroud)

但是,我的问题是:如果没有硬编写查询,有没有办法做到这一点,所以写这样的东西:

        $query = 'SET @row_number:=0;';
        $this-> db-> query ($query);
        #*****It's wrong!!!!*****

        $this -> db -> select(array('Id', '@row_number:=@row_number+1 as Position'));
        $this -> db -> from('my_table');
        $this -> db -> where('date', $data);
        $query = $this -> db -> get();
Run Code Online (Sandbox Code Playgroud)

Sat*_*aty 2

不需要pass array in select你只需将查询写为

 $this -> db -> select('Id, @row_number:=@row_number+1 as Position');
Run Code Online (Sandbox Code Playgroud)