mysql存储过程中的字符串函数

时间:2017-11-13 05:15:41

标签: mysql stored-procedures stored-functions

这是我使用的python函数示例。是否可以/实际使用在mysql存储过程中编写的类似函数?

import itertools
import jellyfish
def dropdup(mystr):
    mytuple=tuple(set(mystr.lower().split()))
    newtup=list()
    for i in mytuple:
        i=i.replace('tha', 'ta')
        i = i[:-3] if i.endswith('bai') else i
        newtup.append(''.join(i for i, _ in itertools.groupby(i)))
        newtup.sort()
    try:
            return ''.join(jellyfish.soundex(i) for i in newtup)
    except:
        return NULL

此python函数按预期工作,它返回给定字符串中每个单词的soundex值。例如,

dropdup('Shantanu Shantanu Prabhakar Oak')
'o200p612s535'

dropdup('Oak Santanu Prabhakar')
'o200p612s535'

MySQL有内置的soundex函数,但是我可以复制字符串操作python方法,比如删除和重复删除几个字符吗?

mysql> select concat( soundex('oak'), soundex('prabhakar'), soundex('shantanu')) as dropdup;
+---------------+
| dropdup       |
+---------------+
| O200P6126S535 |
+---------------+
1 row in set (0.00 sec)

使用存储过程进行字符串操作是否有任何优点/缺点?什么是最佳做法?

0 个答案:

没有答案