5
мне нужно выполнить этот запрос с CodeIgniter построитель запросов:Codeigniter SET переменная по запросу
SET @row_number:=0;
SELECT Id, @row_number:[email protected]_number+1 as Position
FROM my_table
WHERE date='2015-12-26'
я могу сделать это с помощью "запроса $ this-> db->" функции, как это:
$query = 'SET @row_number:=0;';
$this-> db-> query ($query);
$query = 'SELECT Id, @row_number:[email protected]_number+1 as Position';
$query = $query . ' FROM my_table';
$query = $query . ' WHERE date=\'' . $data . '\''
Но, на мой вопрос: есть ли способ сделать это без жесткого записи запроса, так что писать что-то вроде этого:
$query = 'SET @row_number:=0;';
$this-> db-> query ($query);
#*****It's wrong!!!!*****
$this -> db -> select(array('Id', '@row_number:[email protected]_number+1 as Position'));
$this -> db -> from('my_table');
$this -> db -> where('date', $data);
$query = $this -> db -> get();
Это не работает, потому что генерируется запрос, как это: * SELECT 'Id', '@row_number: = @ row_number + 1' как 'Position' FROM 'my_table' *. Я думаю, что есть две проблемы: 1-Он не учитывает первую часть запроса (SET @row_number: = 0). 2. Используя ваше решение, он присоединяет цитаты типа * '@ row_number: = @ row_number + 1' * – Fabio