Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ORDER BY [część tekstu]
sc0rpi0
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 27.07.2010

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


Witam

Potrzebuję pomocy ze skonstruowaniem zapytania SQL, a mój problem dotyczy dokładnie instrukcji ORDER BY:
Otóż czy da się zrobić sortowanie wg tylko części (np. 2 znaków) z danej kolumny?

Załóżmy, że mam takie wpisy w tabeli produktów:
Kod
KOD     WYDAJNOSC     POJEMNOSC
AC 444     50          115
AC 222     50          110
AC 11      60          80
DC 22      30          90
DC 11      35          90

I chcę zrobić proste sortowanie ORDER BY KOD, WYDAJNOSC, POJEMNOSC z tym, aby do KOD brało tylko dwa pierwsze znaki, czyli aby w wynikach najpierw pojawiły się wszystkie produkty o początku kodu "AC", a następnie te o kodzie "DC" a dla produktów o takim samym początku kodu kolejnym kryterium ma być WYDAJNOSC a następnie POJEMNOSC.
W efekcie chciałbym uzyskać kolejność AC 222, AC 444, AC 11, DC 22, DC 11.

Dziękuję za wszelkie sugestie...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sniver
post
Post #2





Grupa: Zarejestrowani
Postów: 159
Pomógł: 5
Dołączył: 31.08.2007

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


ok
podziel w takim razie `kod` na 2 części tak by oddzielnie było: AC i cyferki (IMG:style_emoticons/default/smile.gif)
jeśli jest taka możliwość to wystarczy skorzystać z substr(`KOD`, 1, 2) - pokaże pierwsze 2 literki ciągu..
no i potem już wiadome od 3 lini i do końca - by wyliczyć ile do końca skorzystaj z funkcji length i gotowe (IMG:style_emoticons/default/smile.gif)

  1. SELECT
  2. *,
  3. substr(`KOD`, 1, 2) AS `literki`,
  4. trim(substr(`KOD`, 3, length(`KOD`))) AS `cyferki`
  5. FROM
  6. tabelka
  7. ORDER BY
  8. `literki` ASC,
  9. `cyferki` DESC

..ITD...

Ten post edytował sniver 19.10.2010, 17:11:12
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 12.10.2025 - 13:04