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


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