|
呵呵,上面是我的理解,有不对的还请指正!
对于translate,这样理解可能会好些。
[php]
SQL> SELECT TRANSLATE('What is this? a test !','ait','-*') FROM DUAL;
TRANSLATE('WHATISTHIS?ATEST!',
------------------------------
Wh- *s h*s? - es !
SQL> SELECT TRANSLATE('What is this? a test !','ai','-*X') FROM DUAL;
TRANSLATE('WHATISTHIS?ATEST!',
------------------------------
Wh-t *s th*s? - test !
SQL>
[/php]
translate这个函数,是全文匹配的,这么说是因为它是从左开始到结束一个字符一个字符处理的,首先判断查找串或替换串两者有任一位空,则返回空;否则一个字符以给字符的匹配查找串在原串中的位置,都替换为替换串中的与查找串位置对应的字符。如果替换串的长度小于查找串,则查找串后面的字母默认替换为空。如果替换串长度大于查找串,多余的部分不会进行处理!
大家可以看上面第一个例子,a对应后面的-,i对于后面的*,t没有对应的则会被替换为空! |
|