Postgresql 如何选择返回与确切模式和该模式的第一段匹配的行的结果?
我一直在仔细阅读关于模式匹配的PostgreSQL 9.0文档,但我仍然不知道如何获得我想要的结果 给定如下所示的表Postgresql 如何选择返回与确切模式和该模式的第一段匹配的行的结果?,postgresql,Postgresql,我一直在仔细阅读关于模式匹配的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 编辑: 而一匹没有名字的马的解决方案效果很好。我仍然想知道是否还
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
编辑:
而一匹没有名字的马的解决方案效果很好。我仍然想知道是否还有其他答案。类似这样的问题:
SELECT *
FROM sandbox
WHERE segment = 'foo-bar-baz'
OR segment = (string_to_array ('foo-bar-baz', '-')) [1];
挑选*
从沙箱
其中段='foo-bar-baz'
或段=(字符串到数组('foo-bar-baz','-')[1];
在最后一行中,您打算使用
foobar baz
而不是foobar
对吗?