我无法理解 btrim() 的行为
I can't understand the behaviour of btrim()
我目前正在使用postgresql,我了解了这个功能btrim
,我查看了很多网站的解释,但我不是很明白。
Here 他们提到了这个例子:
btrim('xyxtrimyyx', 'xyz')
给出trim
.
当我尝试这个例子时:
btrim('xyxtrimyyx', 'yzz')
或
btrim('xyxtrimyyx', 'y')
我明白了:xyxtrimyyx
我不明白这个。为什么它不删除 y
?
根据您指向的文档,定义是:
Remove the longest string consisting only of characters in characters
(a space by default) from the start and end of string
您的示例不起作用的原因是因为该函数试图从文本的 Both 两侧剥离文本,仅包含 个指定的字符
让我们看一下第一个示例(来自文档):
btrim('xyxtrimyyx', 'xyz')
这个 returns trim
,因为它经过 xyxtrimyyx
到达 t
并且在 xyz
中没有看到那个字母,所以这就是函数停止从前面剥离的地方。
我们现在只剩下 trimyyx
现在我们做同样的事情,但是从字符串的末尾开始。
虽然 xyz
之一是最后一个字母,但删除该字母。
我们这样做直到 m
,所以我们剩下 trim
。
注意:我从未使用过任何形式的 sql。关于 postgresql 执行此操作的 exact 方式,我可能是错误的,但我从文档中相当确定这是如何完成的。
我目前正在使用postgresql,我了解了这个功能btrim
,我查看了很多网站的解释,但我不是很明白。
Here 他们提到了这个例子:
btrim('xyxtrimyyx', 'xyz')
给出trim
.
当我尝试这个例子时:
btrim('xyxtrimyyx', 'yzz')
或
btrim('xyxtrimyyx', 'y')
我明白了:xyxtrimyyx
我不明白这个。为什么它不删除 y
?
根据您指向的文档,定义是:
Remove the longest string consisting only of characters in characters (a space by default) from the start and end of string
您的示例不起作用的原因是因为该函数试图从文本的 Both 两侧剥离文本,仅包含 个指定的字符
让我们看一下第一个示例(来自文档):
btrim('xyxtrimyyx', 'xyz')
这个 returns trim
,因为它经过 xyxtrimyyx
到达 t
并且在 xyz
中没有看到那个字母,所以这就是函数停止从前面剥离的地方。
我们现在只剩下 trimyyx
现在我们做同样的事情,但是从字符串的末尾开始。
虽然 xyz
之一是最后一个字母,但删除该字母。
我们这样做直到 m
,所以我们剩下 trim
。
注意:我从未使用过任何形式的 sql。关于 postgresql 执行此操作的 exact 方式,我可能是错误的,但我从文档中相当确定这是如何完成的。