MYSQL实现ORACLE INSTR功能

INSTR(str,substr)函数在MYSQL和ORACLE数据库中都是表示substr在str字符串中出现的位置

但是MYSQL数据中该函数只有两个参数,在ORACLE中则有4个参数 INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)。例如:

instr('das/das/dsa/sads','/',1,2);

上述方法是ORACLE中获取‘/’在字符串‘das/das/dsa/sads’中出现的位置,参数1是源字符,参数2是被搜索的字符串,参数3,1表示从第一位开始(默认是从1开始),参数4,表示取第2个匹配项的位置,即第2次出现的位置。

由于MYSQL的INSTR函数只支持两个参数,所以只能搜索第一次出现的位置,在网上搜索了一下,终于找到了方法:

LENGTH(SUBSTRING_INDEX(str,substr,index))+1

其中str参数为源字符串,substr为被搜索的字符串,index表示匹配的次数。

上述的例子可以改为:

LENGTH(SUBSTRING_INDEX('das/dsa/dsa/asds','/',2))+1


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章