MySQL:进行基本搜索

Jim*_*Jim 3 python mysql

我的数据库中有一个名称表,我希望对它进行模糊搜索,例如我的数据库包含:

Name         ID
John Smith   1
Edward Smith 2
Gabriel Gray 3
Paul Roberts 4
Run Code Online (Sandbox Code Playgroud)

在我通过python搜索数据库的那一刻,我只能进行完全匹配搜索.但我希望能够进行模糊搜索,在那里我可以搜索"史密斯"这个名字并带回约翰史密斯和爱德华史密斯.

Wri*_*ken 5

在最简单的形式中,您将使用LIKE比较:

SELECT * FROM table WHERE name LIKE '%smith%';
Run Code Online (Sandbox Code Playgroud)

使用FULLTEXT索引(大量文本)可以完成更精细的搜索,SOUNDEX()(在英语单词上工作,在其他语言上匹配从"有点可行"到"可怕"的所有内容),levenshtein单词的距离等等.

  • 要添加它,如果选择适当的排序规则(具有_ci后缀的排序规则),则可以在MySQL中使用不区分大小写的比较 (2认同)