Comment faire correspondre des chaînes avec des parties ajoutées, mais pas les faire correspondre si elles ont des parties ajoutées différentes ? Par exemple, si j'ai une liste de noms et que je dois les faire correspondre aux noms de ma base de données :
| My DataBase | Foreign table | | David James Malan Neeko | David James Malan | | David James Malan Neeko | David James Malan Mathew | | David James Malan Neeko | David jam Mlan |
J'ai d'abord essayé de faire une correspondance exacte, et si je ne la trouve pas, je continue de supprimer un caractère à la fin de la chaîne de nom externe et j'essaie à nouveau de faire la correspondance jusqu'à ce qu'un seul enregistrement corresponde à ma base de données.
Cette technique correspond aux premier et troisième exemples du tableau ci-dessus, mais le problème est qu'elle correspond également au deuxième exemple car le programme supprime un caractère à chaque fois jusqu'à ce que le mot Mathew entier soit supprimé, puis il trouve une correspondance, qui est une fausse correspondance dans ce cas.
Toutes suggestions pour que je puisse faire une correspondance exacte uniquement ou une correspondance mais n'avoir que la partie supplémentaire du nom d'un côté, mais ne pas les faire correspondre s'ils ont tous les deux deux parties différentes du nom.
Vous pouvez utiliser SQL ou Python pour résoudre ce problème.
Merci d'avance pour votre aide.
Cela est très inefficace et nécessitera une analyse complète du tableau.
Chaîne de recherche commençant parORDER BY
子句中的第一个表达式将首先对完全匹配进行排序,然后第二个表达式将对以整个搜索字符串开头的name
进行排序,然后是以name
.Évidemment, vous pouvez passer la chaîne de recherche directement en paramètre au lieu d'utiliser
SET @name_str = '...';
.Voici quelques exemplesdb<>fiddle.