Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sortowanie po liczbie w porzadku tekstowym
Forum PHP.pl > Forum > Bazy danych
marekfan
Witam
Mam w bazie pole typu INTEGER w którym jest zapisany numer nip.
Jak posortowac potym polu żeby porządek był tak jakby to pole było tekstowe

Pozdrawiam
nevt
o ile to MySQL:
  1. SELECT * FROM `tabela` ORDER BY CAST(`pole_liczbowe` AS CHAR);
bob1223
A jak posortować takie przykładowe rekordy

Adam 1
Adam 12
Adam 2
Adam 8

na

Adam 1
Adam 2
Adam 8
Adam 12

ASC nie działa
dr_bonzo
A jak bardzo dokladny jest to przyklad? Masz w bazie inne stringi niz "Adam" ile jest spacji po imieniu itp?
Bo chyba nie ma funkcji do "naturalnego sortowania" - a majac pewne ograniczenia mozna to sprytnie inaczej zapisac
bob1223
Tabela wygląda tak:

id, siec, nazwa
-----------------
1, 1, Wyszynskiego 1
2, 1, Wyszynskiego 2
3, 1, Broniewskiego 1
4, 1, Broniewskiego 3
5, 1, Broniewskiego 5,
6, 1, Broniewskiego 7,
7, 1, Broniewskiego 9,
8, 1, Broniewskiego 11
9, 1, Sportowa 2

i już będzie problem z budynkiem o nazwie Broniewskiego 11
zegarek84
tylko jaką masz baze danych??
jesli mysql to zbiór wszystkich potrzebnych funkcji operujących na stringu masz tutaj:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

jesli baza jest w sqlite to tam można łatwo implementować funkcje z php i następnie obrobić string

takie sortowanie nawet dużo bardziej złożone od tego co się pytasz wykonywałem na forumexcel.pl..... napiszę tylko tyle, że musisz poszukać ostatniej spacji gdyż nazwa ulicy może być dwuczłonowa i więcej - i od tej ostatniej spacji wycinasz nazwe ulicy i osobno numer domu.... i sortujesz najpierw po wyciętej nazwie ulicy a następnie po wyciętym numerze domu winksmiley.jpg
nevt
można dużo prościej:
  1. SELECT * FROM `tabela` ORDER BY BINARY `nazwa`;
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.