相关疑难解决方法(0)

如何在MySQL中替换正则表达式?

我有一张约500k行的桌子; varchar(255)UTF8列filename包含文件名;

我试图从文件名中删除各种奇怪的字符 - 我以为我会使用一个字符类: [^a-zA-Z0-9()_ .\-]

现在,MySQL中是否有一个函数可以让你通过正则表达式替换?我正在寻找与REPLACE()函数类似的功能 - 简化示例如下:

SELECT REPLACE('stackowerflow', 'ower', 'over');

Output: "stackoverflow"

/* does something like this exist? */
SELECT X_REG_REPLACE('Stackoverflow','/[A-Zf]/','-'); 

Output: "-tackover-low"
Run Code Online (Sandbox Code Playgroud)

我知道REGEXP/RLIKE,但那些只检查是否有匹配,没有什么比赛是.

(我可以SELECT pkey_id,filename FROM foo WHERE filename RLIKE '[^a-zA-Z0-9()_ .\-]'从PHP脚本做一个" ",做一个preg_replace然后" UPDATE foo ... WHERE pkey_id=...",但这看起来像一个最后的缓慢和丑陋的黑客)

regex mysql mysql-udf

482
推荐指数
11
解决办法
42万
查看次数

从 mysql 字段中提取电子邮件地址

我的表中有一个长文本列“描述”,有时包含电子邮件地址。我需要提取此电子邮件地址并添加到每行的单独列中。这可以在 MySQL 中实现吗?

mysql

4
推荐指数
2
解决办法
5807
查看次数

标签 统计

mysql ×2

mysql-udf ×1

regex ×1