我无法理解btrim()的行为

时间:2018-01-07 10:34:55

标签: postgresql trim

我目前正在使用postgresql,我了解了这个功能btrim,我检查了许多网站的解释,但我并不是很理解。

Here他们提到了这个例子:

btrim('xyxtrimyyx', 'xyz')

它提供了trim

当我尝试这个例子时:

btrim('xyxtrimyyx', 'yzz')

btrim('xyxtrimyyx', 'y')

我明白了:xyxtrimyyx

我不明白这一点。为什么没有删除y

1 个答案:

答案 0 :(得分:3)

从您指出的文档中,定义说:

  

删除仅包含字符中字符的最长字符串   (从字符串的开头和结尾开始,默认为空格)

您的示例不起作用的原因是因为该函数尝试从文本的两个两侧剥离文本,包括指定的字符

让我们看看第一个例子(来自文档):

btrim('xyxtrimyyx', 'xyz')

这会返回trim,因为它会经过xyxtrimyyx并升级到t并且在xyz中看不到该字母,所以这就是函数的位置停止从前面剥离。

我们现在离开了trimyyx

现在我们也这样做,但是从字符串的末尾开始。 当xyz中的一个是最后一个字母时,请删除该字母。 我们会在m之前执行此操作,因此我们会留下trim

注意:我从未使用过任何形式的sql。对于postgresql这样做的完全方式我可能是错的,但我相当肯定,从文档中可以看出它是如何完成的。

相关问题