我目前正在使用postgresql,我了解了这个功能btrim
,我检查了许多网站的解释,但我并不是很理解。
Here他们提到了这个例子:
btrim('xyxtrimyyx', 'xyz')
它提供了trim
。
当我尝试这个例子时:
btrim('xyxtrimyyx', 'yzz')
或
btrim('xyxtrimyyx', 'y')
我明白了:xyxtrimyyx
我不明白这一点。为什么没有删除y
?
答案 0 :(得分:3)
从您指出的文档中,定义说:
删除仅包含字符中字符的最长字符串 (从字符串的开头和结尾开始,默认为空格)
您的示例不起作用的原因是因为该函数尝试从文本的两个两侧剥离文本,包括仅指定的字符
让我们看看第一个例子(来自文档):
btrim('xyxtrimyyx', 'xyz')
这会返回trim
,因为它会经过xyxtrimyyx
并升级到t
并且在xyz
中看不到该字母,所以这就是函数的位置停止从前面剥离。
我们现在离开了trimyyx
现在我们也这样做,但是从字符串的末尾开始。
当xyz
中的一个是最后一个字母时,请删除该字母。
我们会在m
之前执行此操作,因此我们会留下trim
。
注意:我从未使用过任何形式的sql。对于postgresql这样做的完全方式我可能是错的,但我相当肯定,从文档中可以看出它是如何完成的。