mysql - MYSQL:从列值获取子字符串?
问题描述
Varchar
我的表中的列中有以下数据MYSQL
:
Blank_Person_ID_776
Person_999
我想将下划线后的最终数字提取到变量(在本例中为 776),以便在查询中使用它。即忽略任何下划线,但最后一个。
我该怎么做?
我希望我的最终查询如下:
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]*$', '$1')