Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> pierwszy/ostatni element w tableli
umatik
post 9.09.2005, 12:15:30
Post #1





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 17.05.2002
Skąd: lodz

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


jak mam zadac pytanie zeby otrzymac ostatni badz pierwszy element z tablicy?
Go to the top of the page
+Quote Post
nospor
post 9.09.2005, 12:21:38
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jesli masz id i jest ono autoincrement:
  1. SELECT id
  2. FROM tablica ORDER BY id ASC LIMIT 1

asc - pierwszy
desc - ostatni


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
TomASS
post 9.09.2005, 12:21:38
Post #3





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Ostatni? to zależy jak się je posotruje? smile.gif Czy ostatni dodany, czy ostatni po nazwie, generalnie to:

pierwszy:
  1. SELECT *
  2. FROM tabele ORDER BY Identyfikator LIMIT 1;


ostatni:
  1. SELECT *
  2. FROM tabele ORDER BY Identyfikator DESC LIMIT 1;



--------edit--------
@nospor: jak zwykle szybszy - tym razem o ułamki sekund smile.gif

Ten post edytował TomASS 9.09.2005, 12:22:42


--------------------
Go to the top of the page
+Quote Post
umatik
post 9.09.2005, 12:25:18
Post #4





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 17.05.2002
Skąd: lodz

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


nie no za pomoca limit to jest jasne ale jak mam wybrac ostatni/pierwszy index tak aby potem mozna to bylo zastosowac w zlaczeniach?

Ten post edytował umatik 9.09.2005, 12:25:40
Go to the top of the page
+Quote Post
kszychu
post 9.09.2005, 12:25:36
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


  1. SELECT MAX(ID) AS ostatni, MIN(ID) AS pierwszy
  2. FROM tabela


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
umatik
post 9.09.2005, 12:33:35
Post #6





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 17.05.2002
Skąd: lodz

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


pomizszy kod jest oczywiscie niepoprawny ale ilustruje sytuacje o ktora mi chodzi

  1. SELECT MAX( A.id ) AS 'maxA', A.temat, MAX( I.id ) AS 'maxI', I.temat
  2. FROM informacje I, aktualnosci A
  3. WHERE A.id = maxA AND I.id = maxI
Go to the top of the page
+Quote Post
TomASS
post 9.09.2005, 12:55:23
Post #7





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Nie za bardzo kumam :/ Dlaczego nie może być tak jak Ci proponujemy?


--------------------
Go to the top of the page
+Quote Post
umatik
post 9.09.2005, 12:56:37
Post #8





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 17.05.2002
Skąd: lodz

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


dlatego ze chce za jednym pytaniem pobrac ostatnia Informacje i ostatnia Aktualnosc
Go to the top of the page
+Quote Post
TomASS
post 9.09.2005, 13:06:16
Post #9





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Aha, to masz dwie tablice.....

Czy te tablice są takie same? (jeśli tak, to dlaczego nie zrobisz z nich jednej tablicy)

Rozumiem, że chcesz wybrać jeden najświeższy rekord z tablicy Informacje i drug z tablicy Aktualności.

Niestetety w takim wypadku przychodzi mi tylko do głowy użycie dwóch zapytań.

Ten post edytował TomASS 9.09.2005, 13:06:54


--------------------
Go to the top of the page
+Quote Post
umatik
post 9.09.2005, 13:09:17
Post #10





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 17.05.2002
Skąd: lodz

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


ej no nie wirze ze nie mozna tego zrobic za pomoca jednego pytania...
Go to the top of the page
+Quote Post
SongoQ
post 9.09.2005, 20:00:44
Post #11





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%)
-----


Mozna np z podzapytaniem, bo inaczej 2 wartosci z funkcji agregacji i pola nie zwrocisz, czyli cos takiego jesli Ci o to chodzi.

  1. SELECT C.maxA, C.maxI, B.temat
  2. FROM (SELECT MAX( A.id ) AS maxA, A.temat, MAX( I.id ) AS maxI
  3. FROM informacje I, aktualnosci A
  4. ) C, informacje B WHERE C.maxI = B.id


Pelecam funkcje max niz sortowanie, chyba wiadomo dlaczego algorytmy wybierania najwiekszej liczby sa szybsze od sortowania, przy indeksach sie to troche wyrownuje. Ale to juz zalezy od reszty warunkow i pol.


--------------------
Go to the top of the page
+Quote Post
TomASS
post 9.09.2005, 22:12:30
Post #12





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Cytat(SongoQ @ 2005-09-09 21:00:44)
  1. SELECT C.maxA, C.maxI, B.temat
  2.  
  3. FROM (SELECT MAX( A.id ) AS maxA, A.temat, MAX( I.id ) AS maxI
  4.  
  5. FROM informacje I, aktualnosci A
  6. ) C, informacje B WHERE C.maxI = B.id

czy gdzieś nie powinno być AS C i AS B ?
Wygląda na to, że inaczej niż z pod zapytanie se ne da.

Ten post edytował TomASS 9.09.2005, 22:13:03


--------------------
Go to the top of the page
+Quote Post
DeyV
post 9.09.2005, 22:33:53
Post #13





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




A jednak da się, da...
http://forum.php.pl/index.php?showtopic=11...indpost&p=76209

http://forum.php.pl/index.php?showtopic=31...olumn-group-row

A całość dokładnie omówiona tutaj:
http://dev.mysql.com/doc/mysql/en/example-...-group-row.html


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
SongoQ
post 9.09.2005, 22:35:16
Post #14





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%)
-----


Cytat
czy gdzieś nie powinno być AS C i AS B ?

Bazy dopuszczaja stosowanie AS po tabelach lub zbiorach ale to jest niezalecane. Juz nie pamietam w jakiej bazie, ale slowo AS po tabeli nie przechodzi.


--------------------
Go to the top of the page
+Quote Post
Balas
post 11.09.2005, 09:44:34
Post #15





Grupa: Zarejestrowani
Postów: 347
Pomógł: 0
Dołączył: 27.08.2005
Skąd: Inowrocław

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


Dodam ze dopiero ucze sie mysqla tongue.gif

a wiec jak przypisac ostatnia wartosc z tabeli do zmiennej questionmark.gif


--------------------
Go to the top of the page
+Quote Post
SongoQ
post 11.09.2005, 22:45:41
Post #16





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%)
-----


http://pl.php.net/manual/pl/function.mysql-fetch-array.php
Tam masz wszystko mad.gif


--------------------
Go to the top of the page
+Quote Post
FiDO
post 11.09.2005, 23:54:04
Post #17





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Cytat(DeyV @ 2005-09-09 23:33:53)
A jednak da się, da...
[...]

MAX-CONCAT trick jest dosc niewydajny, wiec nie zaleca sie jego stosowania. Mozna to zrobic lepiej.. pozwol, ze bezczelnie podlinkuje swojego posta z konkurencyjnym rozwiazaniem winksmiley.jpg

http://forum.php.pl/index.php?showtopic=30...ndpost&p=175959

Rowiazanie oczywiscie nie jest moje.. ja je tylko znalazlem i zapamietalem smile.gif


--------------------
Brak czasu :/
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 10:05