PHP/MYSQL 搜索行中多次出现的子字符串(正斜杠)并修复

标签 php mysql

我有一个数据库,其中包含一系列唯一的 url,所有这些都包含前导 http 或 https,其中包含“://”。一些 url 还带有附加的“//”字符串。

我有三个问题需要解决。

首先,我需要找到所有带有附加双正斜杠和 url 的行,而不会从前导 http 中得到误报。

其次,我需要在不影响前导“http://”和“https://”的情况下将“//”替换为“/”,以便更新该行。

第三,删除重复的行,因为该行已经在没有双正斜杠的情况下插入。

我不知道如何在 MYSQL 命令中跳过“//”的第一次出现...如果我能通过查找错误的 url 来解决其他两个问题,我很确定我可以自己解决其他两个问题。

$sql = "SELECT * FROM `search` WHERE `url` NOT LIKE 'http://' 
        OR NOT LIKE 'https://' AND LIKE '%//%'" ;

最佳答案

找到 http://https:// 其中也有 //

不查找 http:// 和不包含 //https://


WHERE
      (url LIKE 'http://%//%' OR url LIKE 'https://%//%')
   OR
      (url NOT LIKE 'http://%' AND url NOT LIKE 'https://%' AND url LIKE '%//%')

这将用于查找行但不能替换。

关于PHP/MYSQL 搜索行中多次出现的子字符串(正斜杠)并修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43791175/

相关文章:

php - 与 Mysql 的连接未关闭

mysql - 如何将一个表中已有另一个表中的记录的记录插入到一​​个表中?

php - undefined variable : pdo, 调用成员函数 prepare() on null

mysql - 在MySQL中匹配没有空格和标点符号的字符串

php - Javascript 函数接受 PHP 变量

php - 有没有更好的数据库触发器替代品?

php - 处理和防止死锁的正确方法

php - Mysql通过远程连接DB进行查询

php - 重写时的数据库查询

php - hostgator - PHP - MYSQL 无法连接