![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 6 Dołączył: 19.12.2010 Skąd: Krzyżanowice Ostrzeżenie: (0%) ![]() ![]() |
Witam, wie ktoś może, jak napisać coś takiego w Zendzie:
SELECT @pos:=@pos+1, id, table_pkt FROM `user`, (select @pos:=0) p WHERE league_id=2 order by points desc (chodzi o dodatkową kolumnę, która numeruje rekordy) Próbowałem z joinCross: $select->joinCross('(select @pos:=0) p'); ale coś nie idzie.... Pozdrawiam Janusz |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 6 Dołączył: 19.12.2010 Skąd: Krzyżanowice Ostrzeżenie: (0%) ![]() ![]() |
W przykładzie, który podałeś, robią 2 query (inicjowanie zmiennej i użycie zmiennej w selekcie)
$adapter->query("SET @pos = 0 .... "); 95 96 $adapter->query($sql); 97 nie wiem, czy to jest bezpieczne w sensie transakcyjności. Ja zrobiłem w jednym select, tyle, że to jest nie tak eleganckie, jakbym chciał. $sql= "SELECT @pos:=@pos+1 position, id FROM section_user, (select @pos:=0) p WHERE league_id=? order by table_pkt desc, (table_pktwin - table_pktlost) DESC, table_w DESC, table_d DESC,table_l return $this->getAdapter()->fetchAll($sql, $leagueId); Ten post edytował Janusz1200 29.03.2012, 16:57:12 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 16:44 |