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