2014-11-24 29 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

相关问题