MySQL - 使用SUBSTRING从数据字段中提取数字

时间:2014-11-24 20:13:40

标签: mysql substring

我想提取NUMBER;之间的数字。到目前为止,我可以将数据提取到数字,但我不想要任何数字后的数据。如,

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

1 个答案:

答案 0 :(得分:3)

您可以使用SUBSTRING_INDEX函数的组合:

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

请参阅example fiddle here

内部SUBSTRING_INDEX将返回NUMBER =字符串后的所有内容,而第二个将返回之前的所有内容;由内部函数返回。