MySQL查询以查找作为其他URL子字符串的所有URL

时间:2011-05-17 09:41:03

标签: mysql

我有一个类型为Varchar的MySQL字段URL

是否可以使用一个 MySQL查询返回所有记录,其中字符串值URL是另一个记录URL值的子字符串,并显示子字符串和完整字符串记录?

2 个答案:

答案 0 :(得分:1)

你自己加入桌子。类似的东西:

SELECT t1.URL, t2.URL AS SUBURL
FROM mytable t1, mytable t2
WHERE INSTR(t1.URL, t2.URL) > 0
AND t1.ID < t2.ID

请注意,查询的复杂度为N ^ 2,字符串匹配较慢。期待在大桌子上表现糟糕。

答案 1 :(得分:0)

通常,答案是“是”,使用INSTR()或LOCATE()函数。但这取决于您的URL的存储方式。像“http://”,子域名等等可以给你许多误报或漏报。在INSTR()被破坏的意义上不是假的,而是在它不会做你想要它的意义上的假。