Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql] sortowanie wartości ułamkowych (znaki specjalne)
M@X
post
Post #1





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

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


Witam.
Mam w bazie w kolumnie takie wartości:
1/16
5/16
10/16
16/16
Oczywiście każde w osobnym rekordzie. Można według tego jakoś sortować te rekordy ? Tak aby były w kolejności od 1/16 ... do ... 16/16

PS: nie moge tych wartości zamienić na inne
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
warunek
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.07.2010

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


gdzie tu są części ułamkowe? po założeniu odpowiednich indeksów takie cos
  1. SELECT * FROM tablename ORDER BY length(pole), pole;
Go to the top of the page
+Quote Post
M@X
post
Post #3





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

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


no ale wlasnie czasami length(pole) ma pobierac z dwóch pierwszych znaków np : "1/" a czasami z trzech pierwszych znaków np: "16/"
więc tutaj to chyba nie przejdzie :/
Go to the top of the page
+Quote Post
warunek
post
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.07.2010

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


Cytat(M@X @ 20.09.2010, 19:49:59 ) *
no ale wlasnie czasami length(pole) ma pobierac z dwóch pierwszych znaków np : "1/" a czasami z trzech pierwszych znaków np: "16/"
więc tutaj to chyba nie przejdzie :/

nie rozumiem o co teraz Ci chodzi, podaj jakiś przykład bo jeśli dane jak w pierwszym to przejdzie
Go to the top of the page
+Quote Post
Crozin
post
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Masz skopaną strukturę bazy danych i przede wszystkim proponowałbym Ci ją zmienić. Jeżeli masz w miarę dobrze napisany kod PHP to taka zmiana powinna być transparentna dla aplikacji.

Sortować chcesz po prostu od najmniejszego do największego - chyba najlepiej byłoby zamienić ten tekst na liczby.
  1. ...ORDER BY CAST(SUBSTRING_INDEX(col_name, "/", 1) AS INTEGER) / CAST (SUBSTRING_INDEX(col_name, "/", -1) AS INTEGER) ...


Ten post edytował Crozin 20.09.2010, 20:41:51
Go to the top of the page
+Quote Post

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: 15.09.2025 - 15:45