![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 18.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam wpisy typu (w jednej kolumnie, jest to litera z cyfrą): Kod a1, a2, a3 ... a10 ... a100 ... a1000, b1, b2, b3 ... b10 ... b100 ... b1000, c1 ... i tak dalej chciałbym to posortować w w/w kolejności, niestety zwykłe ORDER BY wymięka bo otrzymuję wyniki w stylu: Kod a1, a21, a3, a4, a5, a51, a5, b2 ... jak widać kolejność jeśli chodzi o literę jest ok (w ramach zwykłego ORDER BY), tylko nie tak sortuje liczbę w ramach litery litera jest zawsze jedna, liczby za to mają różną długość Dziękuję za cynk ![]() Ten post edytował patrix007 29.07.2010, 20:27:37 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 43 Pomógł: 9 Dołączył: 8.08.2009 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Kod select * from test order by LEFT(pole, 1), LENGTH(pole)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 18.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie typu
Kod select * from test order by LEFT(pole, 1), LENGTH(pole) lub typu Kod select * from test order by LEFT(pole, 1), LENGTH(pole) ASC generuje wynik: Kod a1, a6, a5, a4, a3, a21, a51, b2 dziwna sprawa Zapytanie typu Kod select * from test order by LEFT(pole, 1), LENGTH(pole) DESC generuje wynik: Kod a21, a51, a1, a6, a5, a4, a3, b2 przy DESC powinno lecieć od końca alfabetu a liczby w ramach liter maleć Ten post edytował patrix007 29.07.2010, 21:50:06 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem dlaczego masz taką strukturę danych (tj. czemu to nie są dwie osobne kolumny), ale:
@DOWN: Oczywiście, że tak! Mój błąd. Już poprawione. ![]() EDIT: Konieczna okazała się zamiana INTEGER na SIGNED. Ten post edytował Crozin 29.07.2010, 23:51:12 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
@Crozin, czy tu nie powinno być przypadkiem na odwrót?
-------------------- Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]! |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 18.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ani jedno ani drugie coś mi nie działa:
Kod #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTEGER ) LIMIT 0, 30' at line 1 Edit. Mała przeróbka i poszło, przetestuję to jeszcze jutro
Powyższe zapytanie generuje wyniki: Kod a1, a3, a4, a5, a6, a21, a51, b2
Powyższe zapytanie generuje wyniki: Kod d8, b2, a602, a600, a51, a21, a5, a1 Różnic w wynikach nie należy brać pod uwagę bo wklejam przykładowe 'skacząc po nich', chodzi o samą kolejność ![]() Nie wiem na ile to poprawne jest no ale działa, bardzo coś takiego obciąża mysql ? @Crozin Zapytanie:
generuje wyniki: Kod a1, b2, a6, a5, a4, a3, a21, a51
Ten post edytował patrix007 30.07.2010, 00:27:55 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 11:03 |