用空字符串MYSQL替换非字母数字字符

问题描述 投票:3回答:2
select 
    file,
    REPLACE(FILE, '[:alnum:]'+'.'+,'') AS Collection
FROM
   CollectionData;


select 
    file,
REPLACE(FILENAME, '^[a-zA-Z0-9\.]','') AS Collection
FROM collectiondata;

我想替换字符串中的所有非字母数字字符,包括下面给出的字符串的.file扩展名。

AXS00003600.txt  to AXS
NXS4DG00003600.txt to NXS4DG

执行上述查询时,我无法替换非字母数字数据。可能是什么问题呢?

mysql alpha numeric
2个回答
0
投票

[不幸的是,MySQL不包含REGEXP_REPLACE操作。您尝试使用的普通REPLACE不适用于正则表达式。您需要在客户端代码或存储过程中执行此操作。


0
投票

自MySQL 8.0起,您可以使用正则表达式从字符串中删除非字母数字字符。有方法REGEXP_REPLACE

这里是删除非字母数字字符的代码:

UPDATE {table} SET {column} = REGEXP_REPLACE({column}, '[^0-9a-zA-Z ]', '')
© www.soinside.com 2019 - 2024. All rights reserved.