Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: max wartosc w kolumnie
Forum PHP.pl > Forum > Bazy danych > MySQL
Bartez+
co dokladniej wpisac w
Cytat
WHERE IDUZYTKOWNIKA =


aby wyciagnac z bazy ostatni wiersz?? czyli maksymalna liczbe IDUZYTKOWNIKA

(IDUZYTKOWNIKA to nazwa kolumny)
kszychu
WHERE IDUZYTKOWNIKA = (SELECT MAX(IDUZYTKOWNIKA) FROM tabelka)
anas
Hej.

Z tego co mi wiadomo MySQL nie obsluguje standardowo podzapytan(ale mozna je zawsze jakos zastapic). Co do przykladu proscie bedzie to zrobic chyba tak:

  1. SELECT MAX(IDUZYTKOWNIKA) FROM NazwaTabeli WHERE 1;


pozdrowka

anas
SongoQ
Sczerze mowic nie rozumiem tego fragmetu: WHERE IDUZYTKOWNIKA =

Podobnie z odpowiedzia
WHERE IDUZYTKOWNIKA = (SELECT MAX(IDUZYTKOWNIKA) FROM tabelka)

Chyba ze chodziło pytajacemu o samo skonstruowanie warunku, ale dla MySQLa nie da sie zrobic podzapytania.

  1. SELECT MAX(IDUZYTKOWNIKA) FROM tabelka
Bartez+
Select MAX(IDZUYTKOWNIKA) FROM TABELKA dziala smile.gif ale jeszcze chcialem zrobic tak zeby pokazywalo mi caly wiersz
czyli IDUZYTKOWNIKA , NAZWAUZYTKOWNIKA ,USERPASSWORD
------- 55 -----------ja ---------------ja

a tak teraz pokazuje mi tylko 55 ....

da sie to jeszcze zrobic? smile.gif
SongoQ
Musisz pogrupowac.

  1. SELECT MAX(IDUZYTKOWNIKA), NAZWAUZYTKOWNIKA ,USERPASSWORD FROM tabelka GROUP BY NAZWAUZYTKOWNIKA ,USERPASSWORD
Bartez+
po takim wpisie wyniki sa sortowane najpierw wedlug USERPASSWORD pozniej wedlug NAZWAUZYTKOWNIKA i pokazuje wszystko co znajduje sie w tabeli a mi chodzilo o pokazanie tylko jednego ostatniego wiersza czyli ostatniego dodanego do bazy uzytkownika(ale zeby bylo pokazane jakie ma ID jaka nazwe i jakie haslo) czyli chyba niepotrzebne mi sortowanie??
SongoQ
Cos nie do konca zrozumialem.

Takie rozwiazanie troszeczke nieoptymalne

  1. SELECT IDUZYTKOWNIKA, NAZWAUZYTKOWNIKA ,USERPASSWORD FROM tabelka ORDER BY IDUZYTKOWNIKA DESC LIMIT 1


Teraz powinno zadzialac.
Bartez+
  1. SELECT iduzytkownika,nazwauzytkownika,userpassword FROM Users ORDER BY iduzytkownika DESC LIMIT 1


wszystko by bylo dobrze tylko ze dostaje komunikat odnosnie LIMIT
Cytat
Incorrect syntax near 'LIMIT'


a bez LIMIT dziala tak jak chcialem, ale bez tego zeby pozostawal jeden wiersz smile.gif
kszychu
Spróbuj 'LIMIT 0, 1'
Bartez+
to samo
spenalzo
Na pewno wykonujesz to zapytanie co wyżej? Bo to co jest wyżej to musi działać.
anas
Hej.

To nie sa te same zapytania...

iduzytkownika != IDUZYTKOWNIKA... sprawdz wielkosc liter dla nazw tabel i kolumn...

pozdrawiam

anas
Bartez+
@spenalzo - tak, wpisuje to co napisalem wyzej smile.gif
@anas- co z tego ze duze i male listery jak mi to dziala?? chodzi o to ze LIMIT nie chce zadzialac, dane sa wyciagane z tabeli ale ja chce je ograniczyc do jednego wiersza
spenalzo
A wpisujesz 1 czy male L ?biggrin.gif
Bartez+
1 smile.gif
FiDO
A jaka dokladnie wersje MySQL'a masz ?
Bartez+
juz rozwiazalem problem nie uzylem LIMIT tylko TOP i zadzialalo

  1. SELECT TOP 1 iduzytkownika,nazwauzytkownika,userpassword FROM Users ORDER BY iduzytkownika DESC


DZIEKI WSZYSTKIM ZA POMOC smile.gifsmile.gif biggrin.gif

temat mozna zamknac
FiDO
W takim razie musisz uzywac jakiejs innej bazy.. MySQL obsluguje LIMIT, a te TOP to nie wiem skad wytrzasnales smile.gif
Bartez+
znalazlem sobie na forum smile.gif http://forum.php.pl/index.php?showtopic=1860
FiDO
ech... no to zaszlo "male" nieporozumienie. Napisales posta na forum dot. MySQL a posiadasz MSSQL, a to nie to samo...
Bartez+
Ach.. to przepraszam smile.gif przeniescie temat, ale i tak dziekuje wszystkim bo mimo ze to nie o ta baze chodzilo to przeciez wszystko jest bardzo podobne i udzieliliscie mi duzej pomocy biggrin.gif dziekuje bardzo WSZYSTKIM exclamation.gif
SongoQ
He he wsumie to tylko mała pomyłka i to na M i to na M tylko sie rozni jedna literka.

Wracajac do tematu do MSSQLa to raczej takie zastosowanie podobnie jak dla MySQLa jest nieoptymalne. Radze wystrzegac sie stosowania czegos takiego jak sortowania a potem zwracania tylko kilku rekordow. Kazdy wie ze algorytmy sortowania nie sa szybkie zwlaszcza jak baza ma duzo rekordow. W MSSQLu mozna zwrocic MAX z identyfikatora jako podzapytanie w FROM a nastepnie zlaczyc z tabelka i wybrac potrzebne pola.

  1. SELECT t2.iduzytkownika, t2.nazwauzytkownika, t2.userpassword FROM (SELECT MAX(iduzytkownika) FROM Users) t1, Users t2 WHERE t1.iduzytkownika = t2.iduzytkownika
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.