我的 SQL 中有以下列
identifier
----------
z250
tr015
011s
我想从中提取数字和非数字字符,所以我有这样的输出:
identifier | pre | number | post
-----------+------+--------+-----
z250 | z | 250 | NULL
tr015 | tr | 015 | NULL
11s | NULL | 11 | s
有人可以指出我需要从哪里开始寻找吗?该列大约有 700 条记录,并且未遵循命名约定,因此数字之前和之后可以是任意数量的字符。
顺便说一句:返回的字符本身不需要是 NULL
,空字符串也可以。数字的前导零也无关紧要。
最佳答案
MySQL 有许多字符串函数会有所帮助。
要开始使用,请参阅MySQL Regex page 。
下面是使用 :alnum:
进行字母数字搜索的示例。替换 :digit:
可能对您有用,可以提取中间的数字。
mysql> SELECT 'justalnums' REGEXP '[[:alnum:]]+'; -> 1
mysql> SELECT '!!' REGEXP '[[:alnum:]]+'; -> 0
关于mysql - 从 varchar 中删除非数字和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42251785/