Как выбрать результаты, которые возвращают строки, которые соответствуют точному шаблону и первому сегменту этого шаблона? - PullRequest
0 голосов
/ 22 декабря 2010

Я перебираю документацию PostgreSQL 9.0 по сопоставлению с образцом, но до сих пор не понимаю, как получить желаемые результаты.

Учитывая таблицу sandbox, которая выглядит следующим образом: id, segment

И содержит это:

1, foo
2, foo-bar
3, foo-bar-baz

Как сделать так, чтобы при выборе foo-bar-baz он также совпадал с «корнем» сегмента (который в данном случае равен foo) и возвращает:

1, foo
3, foo-bar-baz

Аналогично, поиск foo-bar вернет:

1, foo
2, foo-bar

EDIT:

Хотя решение a_horse_with_no_name работает просто отлично. Я все еще хотел бы знать, есть ли другие ответы там.

1 Ответ

2 голосов
/ 22 декабря 2010

Примерно так:

SELECT *
FROM sandbox
WHERE segment = 'foo-bar-baz'
OR    segment = (string_to_array ('foo-bar-baz', '-')) [1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...