【发布时间】:2017-07-19 19:32:44
【问题描述】:
我使用的是 MySQL 5.5.37。我的 VARCHAR 列之一返回表单的字符串数据
Description Number 9 MOre description
每个字符串都将包含单词“Number”,后跟一个实际数字,无论是一个数字还是多个数字。
我的问题是如何仅选择字符串中“数字”一词之后的部分,这就是数字?在上面的示例中,我的 select 语句将返回“9”。
【问题讨论】:
我使用的是 MySQL 5.5.37。我的 VARCHAR 列之一返回表单的字符串数据
Description Number 9 MOre description
每个字符串都将包含单词“Number”,后跟一个实际数字,无论是一个数字还是多个数字。
我的问题是如何仅选择字符串中“数字”一词之后的部分,这就是数字?在上面的示例中,我的 select 语句将返回“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;
【讨论】: