我想将看起来像“someSubdomainInfo.mydomain.com”的值更新为“mydomain.com”(.com 只是一个例子,我想捕获其他所有内容 - 基本上清理子域信息)
想到使用 ^([a-z].*.)?([a-zA-Z0-9_-].[a-z]) 作为 RegExp(缺少以数字开头的域,可能是其他人)
关于如何编写相关更新语句有什么想法吗?
谢谢,
编辑:再看看我的问题,好像我没有表达清楚。 我希望对所有域执行此操作,而不是对一个域执行此操作。 换句话说,我不知道“mydomain.com”是什么。
如果我导出到 csv,我可以使用这个正则表达式并替换为\2(在 EditPro 文本编辑器上验证),我正在寻找类似于直接在 MySQL 中使用 dome 的东西。
最佳答案
SUBSTRING_INDEX()最适合提取部分 URL。
如果您知道域扩展名,就可以聪明地防止意外更新。否则你可以使用 regex在子句中,或计算 .
的数量,以防止此更新更改您不想清除其子域的 URL。
UPDATE test SET url = SUBSTRING_INDEX(url, '.', -2) WHERE SUBSTRING_INDEX(url, '.', -2) = 'mydomain.com';
关于mysql - 更新 MySQL(使用正则表达式?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6063931/