![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 26.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam, wykonuję sobie proste zapytanie:
CODE SET @rownum := 0; SELECT * FROM (SELECT @rownum := @rownum+1 AS rank, id, score FROM profiles ORDER BY score DESC) AS derived_table Które daje prawidłowe wyniki w PhpMyAdmin. Ale już w PHP przy użyciu mysql_query daje oto taki efekt: CODE You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM (SELECT @rownum := @rownum+1 AS rank, id, score FROM profiles ORDE' at line 1 Jak widać mysql_query urżnął zapytanie. O.o Skąd takie cuda? Ten post edytował blady101 13.03.2012, 14:37:55 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
mysql_query pozwala na wykonanie tylko jednego zapytania także
Ten post edytował skowron-line 13.03.2012, 14:40:55 -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 26.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Świetnie działa. Dzięki. Jeszcze jedno pytanie, w tej sekcji zapytania która jest w nawiasach:
(SELECT @rownum := @rownum+1 AS rank, id, score FROM profiles ORDER BY score DESC) Da się zrobić, aby wykonywało to do momentu aż napotka rekord id=5? coś jak IF id=5 THEN STOP; Ale chodzi o zatrzymanie tylko tego co w nawiasie. Ten post edytował blady101 13.03.2012, 14:57:28 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
-------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 26.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Okej, instrukcja warunkowa jest. Ale teraz aby zatrzymać wykonywanie nawiasu w momencie napotkania rekordu z id=5, potrzebujemy dostęp do każdego kroku wykonywania gdzie sprawdzalibyśmy obecnie pobierany rekord IF (id=5, Zatrzymaj wykonywanie nawiasu).
Możliwy jest dostęp do każdego kroku zapytania? Ten post edytował blady101 13.03.2012, 15:30:27 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A nie możesz w podzapytaniu użyć where id <> 7 albo where id not in (7, 9, 12) czy jakie tam liczby chcesz ominąć
-------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 26.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tu nie chodzi właśnie o ominięcie. Te zapytanie sprawdza miejsce rekordu(id=5) w posortowanej tabeli, i jak już napotka ten rekord, ma już jego miejsce, więc nie musi dalej mielić.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.06.2025 - 09:48 |