试图寻找部分匹配:
SELECT * FROM
watches_check
WHERE modelNumber LIKE 'URL
示例数据:
URL: http://www.domain.com/s/keywords=AK-1470GBST&id=123456
modelNumber: AK-1470GBST
我想查找modelNumber是否在URL字段中,但它始终返回0结果。 我哪里出错了?
此外,是否可以找到部分匹配,其中有1或2个字符不同,例如AK-1470GBST vs AK / 1470GBST('/'而不是' - ')将被视为匹配
答案 0 :(得分:0)
第一个问题的答案是让SQL正确无误。我想你想要:
SELECT *
FROM watches_check
WHERE URL like concat('%', modelNumber, '%');
注意:单引号已从“网址”中删除,并且通配符已添加到搜索中。
第二个问题的答案是一种称为Levenshtein距离的技术(参见维基百科页面here)。如果你谷歌“Levenshtein mysql”,你会发现该算法的各种实现。
答案 1 :(得分:0)
您可以使用
SELECT * FROM watches_check WHERE INSTR(URL, modelNumber) > 0
检查您的网址是否包含modelNumber。如果你的modelNumber包含LIKE模式的通配符:%
和_
,这甚至可以工作。
它不会返回部分匹配。看看戈登的答案。