Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何选择返回与确切模式和该模式的第一段匹配的行的结果?_Postgresql - Fatal编程技术网

Postgresql 如何选择返回与确切模式和该模式的第一段匹配的行的结果?

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 编辑: 而一匹没有名字的马的解决方案效果很好。我仍然想知道是否还

我一直在仔细阅读关于模式匹配的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
编辑:

而一匹没有名字的马的解决方案效果很好。我仍然想知道是否还有其他答案。

类似这样的问题:

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
对吗?