5
muszę wykonać to zapytanie z CodeIgniter konstruktora zapytań:CodeIgniter SET zmienna na zapytania
SET @row_number:=0;
SELECT Id, @row_number:[email protected]_number+1 as Position
FROM my_table
WHERE date='2015-12-26'
mogę to zrobić za pomocą "$ this-> db-> query" funkcję tak:
$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 . '\''
Ale moje pytanie brzmi: Czy istnieje sposób to zrobić bez trudno napisać kwerendę, więc pisząc coś takiego:
$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();
To nie działa, ponieważ wygenerowane zapytanie jest tak: * Wybierz 'id', '@row_number: = @ ROW_NUMBER + 1' jako 'Position' z 'my_table' *. Wydaje mi się, że są dwa problemy: 1 - Nie bierze pod uwagę pierwszej części zapytania (SET @row_number: = 0). 2 - Korzystając z rozwiązania, dołącza cytaty takie jak * '@ numer_wiersza: = @ numer_wiersza + 1' * – Fabio