Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 20.10.2006 Ostrzeżenie: (0%)
|
Witam.
Załóżmy, że mamy prościutką tabelę danych przechowującą ludzi, każdy z unikalnym numerem ID. Załóżmy dodatkowo, że tabela ta ma wiele rekordów. Chcemy posortować ją wg dowolnej kolejności - brzmi to dziwnie, ale takie rozwiązanie jest mi potrzebne - np. wg numerów: 6,8,2,9,1,100,200,542,142, a dalej już np. rosnąco. Czy jest na to jakieś bardziej elegancki sposób niż tworzenie ogromnego zapytania z wieloma słówkami UNION? Dla mnie nie jest to problemem wygenerować takowe dynamicznie, ale czy jest prostszy, może mniej obciążający bazę sposób na takowe zapytanie? Ten post edytował MistrzHTML 12.07.2007, 21:31:36 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 20.10.2006 Ostrzeżenie: (0%)
|
Dobry pomysł, ale zapytanie nie zadziała do końca tak jak powinno. Jeżeli przypisze tej zmiennej konkretne wartości dla wybranych id, a pozostałe wypełni samym id, to oryginalne numery id, które miały zostać wybrane po tych konkretnych wartościach, "wepchną się" między nie. Jeżeli na początku chcę mieć rekord o numerze 7, a potem 4 zakładając, że mam w bazie oryginalne numery od 1 wzwyż, to otrzymam taki wynik:
7 (x=1), 1 (x=1), 4 (x=2), 2 (x=2) lub 1,7,4,2 lub 7,1,2,4 lub 1,7,4,2 - zależy od kolejności wpisów w bazie. Ja chciałbym, by rekordy z numerami 7 i 4 wskoczyły przed wszystkie inne. ---------------------------------------------------------------------------------------------------- 02:01 Właśnie odkryłem, że działa zapis
(IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) Co dziwne, wyświetla rekordy o numerach 4 i 7 na samym dole wyników (7 to ostatni zwrócony rekord). Wyniki w pożądanej kolejności zwraca zapytanie:
Dziwne, ale prawdziwe (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ten post edytował MistrzHTML 13.07.2007, 01:08:54 |
|
|
|
MistrzHTML Sortowanie wg konkretnych wartości 12.07.2007, 21:29:54
Indeo Tak jest elegancki sposób:
Np niech będzie zmienn... 12.07.2007, 22:04:42
Indeo [SQL] pobierz, plaintext SELECT id,casewhen id=4 t... 13.07.2007, 16:45:18 ![]() ![]() |
|
Aktualny czas: 29.12.2025 - 22:24 |