Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sortowanie wg. wlasnego zdefiniowanego porzadku
Forum PHP.pl > Forum > Bazy danych > MySQL
[fisher]
Witam forumowiczow

Szukalem rozwiazania w archiwum ale nie udalo mi sie znalezc nic co by mnie usatysfakcjonowalo, wiec zwracam sie z prosba o podsuniecie pomyslu na rozwiazanie problemu

A wiec problem ksztaltuje sie nastepujaco.

Zajmuje sie tabelka o takiej strukturze

Kod
CREATE TABLE tabelka (

  id int(11) NOT NULL auto_increment,

  imie_nazwisko varchar(100) NOT NULL default '',

  tytul_naukowy varchar(50) NOT NULL default '',

  PRIMARY KEY  (id)

)


Jak widac jest to tabelka trzymajaca imiona i nazwiska oraz ich tytuly naukowe pewnych osob

Dostepne tytuly naukowe to np. 'prof. zw. dr.', 'mgr.', 'dr', 'lic' itd.

Chcialbym moc wyciagnac pewna grupe ludzi sortujac wg ich tytulu naukowego (pamietajac o hierarchi: a
wiec najpierw 'prof. zw.' pozniej 'prof' pozniej 'dr hab' pozniej 'dr' itd...)

Sortowanie alfabetyczne oczywiscie odpada

Czy mozna w mysql definiowac wlasne kolejnosci sortowan (klucze) ?

Jesli ktos wie to bede wdzieczny za naprowadzenie mnie na rozwiazanie
lisu
Nie jestem pewien czy o to chodzi, ale na stronie mysql'a znalazlem:
Cytat
The key used to fetch the rows are not the same one that is used to do the ORDER BY: SELECT * FROM t1 WHERE key2=constant ORDER BY key1


Z tego co rozumiem musisz zdefiniowac jeszcze jedna tabelke z hierachia profesorow, licencjatow itp i po niej sortowac. Od razu zaznaczam, ze jest to tylko przypuszczenie i nie stosowalem go, ani o 2 w nocy nie bede probowal.
Yasieq
Right, dodaj jeszcze jedno pole - nazwij go hierarchia... i w nim zrob hierarchie - np 1 - prof., 5 - mgr....

I sortuj wedlug pola hierarchia.
uboottd
Moze srednio eleganckie, ale skuteczne w pewnych zastosowaniach:

Kod
CREATE TABLE tabelka (

  id int,

  nazwisko char(50),

  tytul enum('prof. zw.','dr.','mgr' ... itd )

)

i wtedy juz normalnie order by tytul.
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.