首页 > 解决方案 > 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;

标签: mysqlsqlstringvarchar

解决方案


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

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

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

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

推荐阅读