在MySQL中,如何提取特定字符串模式后的字符串?
In MySQL, how can I extract a string after a specific string pattern?
我正在使用 MySQL 5.5.37。我的 VARCHAR 列之一 returns 形式为
的字符串数据
Description Number 9 MOre description
每个字符串都将包含单词 "Number",后跟一个实际数字,无论是一位还是多位数字。
我的问题是如何 select 仅 "Number," 之后的字符串部分就是数字?在上面的示例中,我的 select 语句将 return "9".
如果"Number"后面有数值,请尝试使用substring_index
获取数字,否则为null:
select
case
when col regexp '.*Number [0-9]+.*'
then substring_index(substring_index(col, 'Number ', -1), ' ', 1)
end
from t;
Demo
我正在使用 MySQL 5.5.37。我的 VARCHAR 列之一 returns 形式为
的字符串数据Description Number 9 MOre description
每个字符串都将包含单词 "Number",后跟一个实际数字,无论是一位还是多位数字。
我的问题是如何 select 仅 "Number," 之后的字符串部分就是数字?在上面的示例中,我的 select 语句将 return "9".
如果"Number"后面有数值,请尝试使用substring_index
获取数字,否则为null:
select
case
when col regexp '.*Number [0-9]+.*'
then substring_index(substring_index(col, 'Number ', -1), ' ', 1)
end
from t;