【问题标题】:mySQL replace string + additional string with a static valuemySQL 用静态值替换字符串 + 附加字符串
【发布时间】:2015-10-11 12:37:01
【问题描述】:

与 PHP 不同,我不相信 mySQL 有任何 preg_replace() 功能,只能通过 REGEXP 匹配。这是我在代码中的字符串:

http://ourcompany.com/theapplestore/...
http://ourcompany.com/anotherstore/...
http://ourcompany.com/yetanotherstore/...

如您所见,其中有一个常量http://ourcompany.com/,但也有一个变量字符串,即theapplestoreanotherstore等。

我想用单个短代码值替换常量字符串,加上变量字符串,然后是变量字符串后面的斜杠(/),即@ 987654329@

编辑 如果有帮助,商店代码的长度始终相同,它们将是 sch131785 sch185399 sch634019 等等。 即,它们都是 9 个字符长

我该怎么做?谢谢。

【问题讨论】:

  • URL 是完整列的内容还是还有更多内容?
  • TAYQ,不仅如此(它是一个TEXT 字段)。而且这种模式不止一个实例。
  • 在这种情况下,我看不到在 mysql 中执行此操作的简单方法; replace 函数中没有通配符。我会将整个专栏拉入 PHP,在其上运行 preg_replace,然后将其发送回 update。人们为此使用了 mysql 的插件。 stackoverflow.com/questions/986826/…(最后的“蛮力法”也是个有趣的想法)
  • 如果我知道该怎么做,我会将我自己的问题标记为可能与此重复:stackoverflow.com/questions/1705437/… :)
  • 答案是上一个帖子;那不会是重复的吗?有办法做到这一点,但没有一个简单的本机 mysql 函数。你也可以试试stackoverflow.com/questions/21001172/…

标签: mysql regex replace


【解决方案1】:

我认为这可能很有用:目前在 mysql 中没有办法做到这一点。用正则表达式查找,是的;更换,没有。也就是说,还有另一个帖子提到了一个扩展库,sagi

Is there a MySQL equivalent of PHP's preg_replace?

【讨论】:

    【解决方案2】:

    MariaDB-10.0.5 有 REGEXP_REPLACE()、REGEXP_INSTR() 和 REGEXP_SUBSTR()

    【讨论】:

      【解决方案3】:

      您可以使用以下正则表达式,

      (ourcompany.com\/\w+\/)
      

      Demo

      使用Group Capture的概念

      【讨论】:

      • 感谢您的努力,但这更多的是使用 MYSQL 替换字符串,而不是识别它。我使用了各种 MYSQL 表达式来替换和评估字符串,但没有一个可以这样做。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 2022-11-17
      相关资源
      最近更新 更多