我目前正在使用postgresql,我了解了这个功能btrim,我检查了很多网站的解释,但我不太明白。
在这里他们提到了这个例子:
btrim('xyxtrimyyx', 'xyz')
Run Code Online (Sandbox Code Playgroud)
它给trim。
当我尝试这个例子时:
btrim('xyxtrimyyx', 'yzz')
Run Code Online (Sandbox Code Playgroud)
或者
btrim('xyxtrimyyx', 'y')
Run Code Online (Sandbox Code Playgroud)
我明白了:xyxtrimyyx
我不明白这一点。为什么不删除y?
从您指向的文档中,定义说:
从字符串的开头和结尾删除仅由字符(默认为空格)中的字符组成的最长字符串
您的示例不起作用的原因是该函数尝试从文本两侧剥离文本,仅包含指定的字符
让我们看一下第一个示例(来自文档):
btrim('xyxtrimyyx', 'xyz')
Run Code Online (Sandbox Code Playgroud)
这将返回trim,因为它穿过xyxtrimyyx并到达 ,t并且在 中没有看到该字母xyz,因此函数在此处停止从前面剥离。
我们现在只剩下trimyyx
现在我们做同样的事情,但是从字符串的末尾开始。虽然其中一个xyz是最后一个字母,但删除该字母。我们这样做直到m,所以我们只剩下trim。
注意:我从未使用过任何形式的 sql。我对 postgresql 执行此操作的确切方式可能是错误的,但我从文档中相当确定这就是它的完成方式。