我有一個SQL語句如下得到一個字符串的一部分基於字符
SELECT cc.id, SUBSTRING(cc.path,2) AS pointer
FROM table AS CC
SQL語句的田間小路就像
/2/3 or /3/23/4
我想要得到的是第二個斜線後面的數字。我不能使用SUBSTRING(cc.path,2,1),因爲它並不總是一個數字。我怎麼能得到這個數字的基礎上得到一個數字在最後或兩個斜線之間?
感謝
基蘭
我有一個SQL語句如下得到一個字符串的一部分基於字符
SELECT cc.id, SUBSTRING(cc.path,2) AS pointer
FROM table AS CC
SQL語句的田間小路就像
/2/3 or /3/23/4
我想要得到的是第二個斜線後面的數字。我不能使用SUBSTRING(cc.path,2,1),因爲它並不總是一個數字。我怎麼能得到這個數字的基礎上得到一個數字在最後或兩個斜線之間?
感謝
基蘭
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(cc.path,'/',3),'/',-1)
見:http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring-index
您可以通過計算在字符串中的下一個 '/' 起始位置提供的長度(第三個參數)。你可以得到這樣的東西..
substring(originalstring,(string,stringpos(string,'/'))
另外檢查這篇文章sql substring()。希望這有助於
你的第二個條件,請嘗試:
SUBSTRING_INDEX(SUBSTRING_INDEX(cc.path, '/', -2),'/',1)
調整參數按要求。
這實際上給出了正確的解決方案,[工作sql小提琴](http://sqlfiddle.com/#!2/a493d) – chridam
謝謝。那就是我所追求的。 – Wheelz