相关疑难解决方法(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万
查看次数

需要帮助来编写搜索查询

我的数据库包含一个varchar类型的电话号码列表.电话号码可以是任何这些格式

12323232323
1-232-323 2323
232-323-2323
2323232323
Run Code Online (Sandbox Code Playgroud)

取而代之的是的符号有可能是( ) , . 或者space 如果我搜索12323232323,1-232-323 2323,232-323-2323,或2323232323它应该显示所有这些结果.我需要为此编写一个查询.

php mysql sql

6
推荐指数
1
解决办法
287
查看次数

MySQL REPLACE多个值

我在列中导致数据导致问题.我需要删除多个不良字符.我想在查询中这样做.

在这个问题上:MySQL字符串替换

我知道我可以在哪里,SELECT REPLACE(string_column, 'search', 'replace') as url但这仅适用于例如替换/与//

我需要在单个查询中替换/和//以及&和&&.实现这一目标的最佳方法是什么?

mysql

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

mysql ×3

mysql-udf ×1

php ×1

regex ×1

sql ×1