Задать вопрос
@vanderv
Ruby on Rails

Как выполнить последовательную выборку в PostgreSQL?

Мне необходимо сделать запрос в базу и достать запись с path='/a/b/c/d' если такой записи нету, то path='/a/b/c' и так далее. То есть на выходу у меня одна запись, которая была найдена именно в таком порядке.
Как это реализовать?
  • Вопрос задан
  • 276 просмотров
Подписаться 2 Оценить 8 комментариев
Пригласить эксперта
Ответы на вопрос 1
BuriK666
@BuriK666
Компьютерный псих
подготовьте список возможных путей
SELECT * FROM table 
WHERE path IN ('/a/b/c/d', '/a/b/c', ...) ORDER BY char_length(path) DESC LIMIT 1;

Ну и индекс по char_length(path) не забудьте сделать..
CREATE INDEX ON TABLE (path);
CREATE INDEX ON TABLE (char_length(path));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы