0

我的数据库:

    ID   place
-----------------------------------------------
    1    Bhowali
    2    Bangalore   
    3    Tumkur

我的查询:

SELECT * 
FROM   table 
WHERE  place LIKE '%bhovali' 

问题是:许多用户在那个时候搜索错误的关键字,查询结果应该匹配并输出正确的一个..在我上面的查询中 bhovali是一个错误的词,正确的词是bhowali。有什么办法可以从查询中得到正确的结果???

4

3 回答 3

3

这是一个非常重要的问题......简短的回答是否定的。SQL 旨在为您提供您想要的,而不是您可能想要的。

您必须开发某种智能引擎来识别存在相似的名称并在它们出现时进行搜索。

于 2013-01-12T06:34:16.137 回答
3

可能这会有所帮助 SELECT * FROM table WHERE SOUNDEX(name) LIKE SOUNDEX('bhovali') ;

于 2013-01-12T06:41:03.450 回答
0

在mysql中,如果列具有全文索引,则可以使用全文搜索

select * from table match(name) against ('bhovali');

于 2013-01-12T07:19:27.737 回答