2014-11-24 127 views
0

我想提取NUMBER;之間的數字。到目前爲止,我可以提取數據到數字,但我不想在數字後面添加任何內容。例如,MySQL - 使用SUBSTRING從數據字段中提取數字

SELECT 
    SUBSTRING(field, LOCATE('NUMBER=', rrule) + 7) 
FROM table 

數據字段:

DATA:PASS=X12;NUMBER=331;FIELD=1 
DATA:PASS=X12;NUMBER=2;FOO=BAR;FIELD=1 

所需的輸出:

331 
2 

回答

2

可以使用的SUBSTRING_INDEX功能的組合:

SELECT 
    SUBSTRING_INDEX(
    SUBSTRING_INDEX(field, 'NUMBER=', -1), 
    ';', 
    1) 
FROM 
    tablename 

請參閱一個example fiddle here

內部的SUBSTRING_INDEX將返回NUMBER =字符串後的所有內容,而第二個將返回所有的內容;由內部函數返回。

+0

正是我所需要的,謝謝! – 2014-11-24 20:31:02