[英]Mysql regular expression or function for extracting numbers from a specific string
我有一列具有以下形式的值:
AB232/10D20
A232/10D20
232/10D20
如何在mysql中提取三个数字? 我想232
, 10
和20
分别和其他列插入。
例如,如果包含这些值的列称为original_column
,则我需要的查询如下所示:
update mytable
set number_one = something(original_column),
number_two = something2(original_column),
number_three = something3(original_column)
中间的数字很容易。 如果我们假设最后一个数字和第一个数字始终为3和2个字符,则它们非常简单。
update mytable
set number_one = right(substring_index(original_column, '/', 1), 3),
number_two = substring_index(original_column, '/', -1) + 0,
number_three = right(original_column, 2);
如果列的长度不完全相同,则可以使用其他技巧。 但是在您的示例中,所有值都具有相同的长度。
使用正则表达式拆分时,请使用组功能。 使用非数字定界符(仅用于整数)分割3个数字的正则表达式为
([0-9] )[^ 0-9] ([0-9] )[^ 0-9] ([0-9] *)
使用正则表达式测试器来改进正则表达式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.