fog
Рыцарь Джедай
сортировка в зависимости от совпавшего усоловия
Есть запрос, делающий выборку, по двум критериям, т.е. должно совпасть одно поле со значением и возможно ещё одно.
Выглядит запрос примерно так
Так вот, могут найтись записи где совпадёт "location_id_to = 142", а могут где совпадт substring("-142-", location_path_to).
Как бы отсортировать записи так, чтобы сначала шли записи с первым совпадением, а после них со вторым?
Усложнается тем, что, что тут две проверки. Тоесть, сначала должны и ти где в двух условиях совпели первые части (location_id_from = 142 и location_id_to = 148), потом записи где совпала одна часть, потом где совпали только вторые части (substring("-142-", location_path_from) и substring("-148-", location_path_to)).
Есть запрос, делающий выборку, по двум критериям, т.е. должно совпасть одно поле со значением и возможно ещё одно.
Выглядит запрос примерно так
Код:
select
t.*, m.*, ty.*
from
tr_transport t
left join tr_manager m using(manager_id)
left join tr_type ty on (ty.type_id = t.type_id)
where
(location_id_from = 142 or substring("-142-", location_path_from))
and (location_id_to = 148 or substring("-148-", location_path_to))
Как бы отсортировать записи так, чтобы сначала шли записи с первым совпадением, а после них со вторым?
Усложнается тем, что, что тут две проверки. Тоесть, сначала должны и ти где в двух условиях совпели первые части (location_id_from = 142 и location_id_to = 148), потом записи где совпала одна часть, потом где совпали только вторые части (substring("-142-", location_path_from) и substring("-148-", location_path_to)).