MySQL - dziwny sposób sortowania

0

Witam,

Mam nietypowy problem. Otóż w mojej bazie danych w tabeli 'sprzedawcy' istnieje kolumna 'nr_faktury' w której to metoda zapisu jest następująca: kolejny_numer/rok np. 17/2011

Teraz przy tworzeniu zapytania w php chciałbym, by funkcja SELECT zaznaczyła mi tylko te rekordy które mają tę końcówkę (rok) równy date('Y') (czyli równy obecnemu roku) i jednocześnie te wybrane rekordy posortowała w trybie DESC (malejąco) względem kolejnego_numeru. Czy jest to do wykonania? Mam takie zapytanie, ale to nie działa:

SELECT nr_faktury FROM sprzedawcy WHERE nr_faktury IS NOT NULL ORDER BY SUBSTRING(nr_faktury,'/',-50) DESC 

Teraz mając rekordy:
15/2011
18/2011
7/2012
1/2012
13/2010
Ma posortować to tak:
7/2012
1/2012
18/2011
15/2011
13/2010

i wybrać tylko te 2 pierwsze, podając je do zmiennej PHP:
7/2012
1/2012

Tak się jednak nie dzieje. Potrzeba mi zatem pomocy :)

1
SELECT nr_faktury, cast(substring(nr_faktury, 1, locate('/', nr_faktury) - 1) as decimal) numer, cast(substring(nr_faktury, locate('/', nr_faktury) + 1) as decimal) rok FROM sprzedawcy order by 3 desc, 2 desc
0

Zanim zaimplementuję to w swoim projekcie - mógłbyś przybliżyć co się dzieje w tym poleceniu? :) Dziękuję z góry

2

pomoc do mysqla jest darmowa i ogólnodostępna

1 użytkowników online, w tym zalogowanych: 0, gości: 1