我有一个类型为Varchar的MySQL字段URL
。
是否可以使用一个 MySQL查询返回所有记录,其中字符串值URL
是另一个记录URL
值的子字符串,并显示子字符串和完整字符串记录?
答案 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()被破坏的意义上不是假的,而是在它不会做你想要它的意义上的假。