我有一个数据库,其中包含一系列唯一的 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/