2010-12-22 16 views
0

我一直在研究有關模式匹配的PostgreSQL 9.0文檔,但我仍然不明白如何獲得我想要的結果。如何選擇返回匹配確切模式和該模式的第一部分的行的結果?

由於看起來像這樣的表​​: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 

編輯:

雖然a_horse_with_no_name的解決方案工作得很好。我仍然想知道是否還有其他答案。

回答

2

事情是這樣的:

 
SELECT * 
FROM sandbox 
WHERE segment = 'foo-bar-baz' 
OR segment = (string_to_array ('foo-bar-baz', '-')) [1]; 
+0

在你想用'富酒吧,baz`而不是'富-bar`正確的最後一行? – 2010-12-22 22:30:47

相關問題