Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mySQL] Ostatni rekord
Nightwalker
post
Post #1





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

Ostrzeżenie: (10%)
X----


Witam,
Jako że w zagadnieniach mySQL dopiero raczkuje zadam to banalne pytanie...
Jak sformułować zapytanie aby zróbiło ostatni rekord z danej tabeli?

Pozdravki winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
FilleZill
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 1.06.2006

Ostrzeżenie: (0%)
-----


Więc...Żeby wybrać z bazy danych jakiś rekord trzeba posłłużyć się operatorem SELECT. Składnia powinna wyglądać tak:
  1. SELECT pole1, pole2, polen FROM nazwa_tabeli WHERE warunek1 AND warunek2 ORDER BY nazwa_klucza rodzaj_sortowania LIMIT klucz_poczatkowy, ilosc_rekordów

* pole1, pole2, polen- określają nazwy pól, które serwer baz ma wysłać w wyniku, jeśli chce się otrzymać wszystkie wystarczy wpisać * (gwiazdkę).
* FROM nazwa_tabeli- to chyba najprostszy fragment, określa nazwę tabeli, z której mają być wybrane rekordy
* WHERE warunek1 AND warunek2- to warunek (warunki), wg których serwer ma przeszukiwać bazę. Można nie podać ich wcale i wtedy wynik będzie zawierał wszystkie rekordy z tabeli. Warunki można łączyć operatorami AND oraz OR oraz w nawiasy (tak jak wifw php)
* ORDER BY nazwa_klucza rodzaj_sortowania- określa według jakiego klucza posortowane mają być wyniki i w jakiej kolejności. Dostępne są dwa rodzaje sortowania ASC- rosnące i DESC- malejące
* LIMIT klucz_poczatkowy, ilosc_rekordów- określa ile wyników ma być zwrócone. Warto pamiętać, że ilosc_rekordow pokazuje ile ma być zwrócone rekordów od klucz_początkowy a nie jest to id klucza końcowego (częsty błąd).

Mam nadzieje że pomogłem cool.gif
Go to the top of the page
+Quote Post
SongoQ
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


@FilleZill Tym przykladem troche sie nie popisales. Ale przynajmniej opisales co i jak.

Jesli uzywamy ORDER BY wazne jest aby to bylo po polu ktore jest indexem. Jesli tak nie bedzie wydajnosc jest nie najlepsza. Kolejna rzecza stosowanie do tego LIMIT te znie najbardziej sie sprawdzi.

Najprostrzym przykladem dla zwrocenie najnowszego rekordu jest uzycie MAX() dla pola id - poniewaz pole id jest kluczem podstawowym i funkcja max na indeksach dziala "blyskawicznie". Oczywiscie przy malej liczbie rekordow nie ma roznicy ale dla wiekszej liczby mozna to zauwazyc.


--------------------
Go to the top of the page
+Quote Post
Nightwalker
post
Post #4





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

Ostrzeżenie: (10%)
X----


Dzięki, nie musiałeś mi całej składni tłumaczyć bo takie podstawy to znam winksmiley.jpg

Co do ostatniego rekordu, chciałem to zrobić jak najwydajniej, owszem mogłem dać sortowanie malejące i dać pętle for ale prościej (i pewnie szybciej) jest użycie przygotowanego do tego zapytania,

Dzięki winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
SongoQ
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


Tak jak pisalem uzyj max() w zapytaniu


--------------------
Go to the top of the page
+Quote Post
Nightwalker
post
Post #6





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

Ostrzeżenie: (10%)
X----


  1. SELECT *
  2. FROM `counter` MAX(vid);


gdzie vid to podstawowy klucz auto_increment (tinyint)

zwraca:

  1. #1064 - Something is wrong in your syntax obok 'MAX(vid)' w linii 3


probowałem vid ująć w ' lub ` ale to nie pomaga, mógłbym prosić link do manuala tej funkcji?


--------------------
Go to the top of the page
+Quote Post
SongoQ
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


Hehe widze ze jednak przyklad FilleZill nie nauczyl Cie.

  1. SELECT MAX(vid) FROM tebela


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 06:55