Sortowanie po dwoch kolumnach integer

0

Witam,

Mam taka tabele w PostgreSQL. Jak moge cos takiego posortowac przez sort_main a pozniej po sort?

Mam cos takiego?

type, sort_main, sort, name
form,0,0,
form,1,0,
book,2,2,Name
book,3,0,Description
book,4,3,Start Time
book,5,4,Date
book,6,5,End Time
book,7,6,Location
book,8,10,Photo
book,9,12,Upload file
group,10,0,
2

Nie rozumiem; w jaki sposób to sortowanie ma działać?

0

Mam takie dane:

id type main_sort sort name
148 formTitle 0 0 null
149 form 1 0 null
207 book 2 1 Description
213 book 3 0 Author
206 book 4 2 Name
214 book 5 5 Author Type
234 book 6 6 Checklist
241 book 7 7 Photo
209 book 8 3 Start Time
208 book 9 4 Date
150 button 9 0 null

Musze je posortowac tak jak ponizej:

id type main_sort sort name
148 formTitle 0 0 null
149 form 1 0 null
213 book 3 0 Author
207 book 2 1 Description
206 book 4 2 Name
209 book 8 3 Start Time
208 book 9 4 Date
214 book 5 5 Author Type
234 book 6 6 Checklist
241 book 7 7 Photo
150 button 9 0 null

Generalnie wszystkie type != 'book' musze zostawic jak sa. Musze tyko posortowac type='book' po sort kolumnie. Nastepnie zaktualizowac odpowienio main_sort kolumne i zapisac do bazy danych.

0
poniatowski napisał(a):

Musze je posortowac tak jak ponizej:

id type main_sort sort name
148 formTitle 0 0 null
149 form 1 0 null
213 book 3 0 Author
207 book 2 1 Description
206 book 4 2 Name
209 book 8 3 Start Time
208 book 9 4 Date
214 book 5 5 Author Type
234 book 6 6 Checklist
241 book 7 7 Photo
150 button 9 0 null

Generalnie wszystkie type != 'book' musze zostawic jak sa. Musze tyko posegregowac type='book' po sort kolumnie.

Jakie znaczenie podkładasz pod słowo "posegregować" - bo to nieco odmienne od "posortować"

type != 'book' musze zostawic jak sa.

A "jak są" ? Kolejność przypadkowa? wg insertów? Mi się nie chce zgadywać po południu (a w ew. twojej odpowiedzi jest rozwiązanie)

0

To jest zapis z jQuery sortable. Takze pozycja kazdego elementu, bez wzgledu na type moze zostac zmieniona. Originalnie wszystkie rekordy z type='book' sa w jednej grupie. Problem pojawia sie jak ktos usuwa ta grupe i zmienia sortowanie elementow na stronie. Trzeba to odpowiednio zaktualizowac w SQL.

2

Generalnie wszystkie type != 'book' musze zostawic jak sa.

Rekordy w SQLu nie mają domyślnego sortowania¹, więc "zostawić jak są" nie oznacza w tym kontekście za wiele.

Być może mamy do czynienia z problemem X/Y - o co chodzi, tak ogólnie?

¹ chyba najczęściej silniki zwracają rekordy tak, jak akurat zapisane są na dysku (co niekoniecznie musi pokrywać się z kluczem głównym albo jakimikolwiek innymi wartościami z kolumn)

0
SELECT * FROM Tabela where type = 'book' ORDER BY sort, main_sort
UNION
SELECT * FROM Tabela where type != 'book'

A coś takiego?

0

Wlasnie tez cos w tym stylu kombinuje. Ale chyba przeniose problem do HTML/JS. I poprsotu zrobie sortowanie na poziomie HTML/JS.

1 użytkowników online, w tym zalogowanych: 0, gości: 1