首页 > 解决方案 > 寻找一种方法来定位数据库中以特定字符开头的值,然后删除该字符

问题描述

我有一个包含新闻站点的相对和绝对 url 的表。文章的作者可以定义指向站点上另一个页面的相对链接,或定义指向另一个站点的完整链接。由于"/"在某些情况下默认值是他在破折号上粘贴了一个链接,并混淆了该链接是相对的还是绝对的,我们最终得到了如下链接:www.authors.site/www.authorsIntended.link.

Normaly 我只是手动解决这个问题,但作者每篇文章最多可以使用 3 个链接,并且由于大多数受影响的链接是第 2 或第 3 链接,前提是这已经被忽视了一段时间。

我可以用这个 sql 提取所有受影响的链接:

    SELECT * FROM `kalamazo_fields_values` WHERE `value` like "/http%"

虽然我想不出一种方法来从选择中只删除第一个字符。我已经很久没有使用 sql 了,所以我可能忽略了一个简单的解决方案,但是对于我的一生,我一直无法找到解决这个问题的方法。

标签: mysqlphpmyadmin

解决方案


你可以使用更新 .. 和 substr

update  `kalamazo_fields_values` 
set  value  = substr( `value`, - (length( `value`) -1))
where `value` like "/http%

推荐阅读