Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Sortowanie i wyświetlanie największej pozycji z bazie
Forum PHP.pl > Forum > Przedszkole
Giluś
Cześć, mam problem mam bazę danych mniej więcej taką..

id | numer | nazwa
1 | 444/2018 | abc
2 | 445/2018 | aaa
3 | 1/2019 | bbb
4 | 2/2019 | ccc

I chciałbym teraz pobrać najnowszy wynik z kolumny "NUMER" czyli w tym przypadku 2/2019, w jaki sposób to zrobić, zakładając, że może zdarzyć się taka sytuacja, że większe "ID" wcale nie będzie oznaczało najnowszego "NUMER"


Pozdrawiam wink.gif
trueblue
To co "masz", to tabela, nie baza danych.

  1. SELECT MAX(CONCAT(SUBSTRING_INDEX(numer,"/",-1),".",SUBSTRING_INDEX(numer,"/",1))) FROM tabela


Proponuję jednak przebudować tabelę, aby przechowywać numer faktury i rok w odrębnych polach.
Giluś
Hej, dzięki za odpowiedź, ale nie działa zbytnio..

Zobacz sam: http://sqlfiddle.com/#!9/08d90c/1
Tomplus
Zadziałało bardzo dobrze, tylko że dla string, a nie na number.

Dlatego zostaje Ci tylko -> utworzenie tymczasowej tabeli gdzie rok i numer będą dodane jako INT a nie STRING.
trueblue
Poprawka:
  1. SELECT numer FROM tabela
  2. ORDER BY 1*SUBSTRING_INDEX(numer,"/",-1) DESC,1*SUBSTRING_INDEX(numer,"/",1) DESC
  3. LIMIT 1
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.