MYSQL: 从列值中获取子字符串?

MYSQL: Get substring from column value?

我的 MYSQL table 的列中有以下 Varchar 数据:

Blank_Person_ID_776
Person_999

我想将下划线后的 final 数字提取到变量(在本例中为 776),以便在查询中使用它。 IE。忽略除最后一个下划线之外的所有下划线。

我该怎么做?

我希望我的最终查询如下:

SET @personId= //query to get id;
Update Person set tracking_id = @personId where tracking_id is null;

如果您想要最后一个 '_' 之后的最终值,请使用 substring_index():

select substring_index(<whatever>, '_', -1)

如果您特别想要字符串中的最后一个数字,即使后面有字符:

select regexp_replace(<whatever>, '.*_([0-9]+)[^0-9]*$', '')