mysql - phpMyAdmin 中的正则表达式搜索

标签 mysql sql regex search phpmyadmin

尝试将 Drupal 站点中的“files”文件夹位置从/files 更改为/sites/default/files。

为了避免更改其他任何内容,例如

  http://www.google.com/profiles/

我正在尝试使用带有单词边界的基本正则表达式。

  \bfiles/

快速 checkin regexpal正在按预期工作,但是当我在 phpMyAdmin 搜索中输入上述内容并选中“作为正则表达式”复选框时,我没有得到预期的结果。

两个问题:

  • 我应该如何编写带有单词边界的表达式,以便它在 phpMyAdmin 中工作?

  • 我真的是 SQL 语句的新手!是否可以编写一个 SQL 查询来简单地查找每次出现的“files/”并将其替换为“sites/default/files/”?

最佳答案

根据MySql docs ,使用的正则表达式风格是 POSIX 1003.2。对于这种风格的正则表达式,单词边界如下:

[[:<:]] (开始)[[:>:]] (完)

所以你的正则表达式是:

[[:<:]]files/

如果你想使用sql来搜索并替换[[:<:]]files/的所有实例从表中的特定字段,您可以 use a UDF such as the one found here

此外,在将正则表达式与 MySql 一起使用时,您应该注意以下事项:

Because MySQL uses the C escape syntax in strings (for example, “\n” to represent the newline character), you must double any “\” that you use in your REGEXP strings.

关于mysql - phpMyAdmin 中的正则表达式搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9962718/

相关文章:

mysql 需要从我的表中查找 future 的包

java - 参数化查询 : Check if field is in array of values in SELECT statement

PHP/SQL - 显示每个查询的特定行数

mysql - 未在 CREATE TABLE 语句中创建的索引和约束

regex - 从命令行使用 git 属性

python - 如果值包含字符串,则设置另一个列值

regex - awk 在匹配之前打印匹配行和行

PHP MySQL 列无效

仅使用单个密码字段(无用户名)的 PHP session ?

php - fatal error :调用未定义的方法 DateTime::createfromformat()