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
转载于:https://blog.51cto.com/ak1ng/1282842