剪切一个字段并像LIKE搜索部分

时间:2015-03-07 14:23:32

标签: python sql string sqlite

我有一个存储在sqlite数据库中的名称列表(实际上是作者)。这是一个例子:

João Neres, Ruben C. Hartkoorn, Laurent R. Chiarelli, Ramakrishna Gadupudi, Maria Rosalia Pasca, Giorgia Mori, Alberto Venturelli, Svetlana Savina, Vadim Makarov, Gaelle S. Kolly, Elisabetta Molteni, Claudia Binda, Neeraj Dhar, Stefania Ferrari, Priscille Brodin, Vincent Delorme, Valérie Landry, Ana Luisa de Jesus Lopes Ribeiro, Davide Farina, Puneet Saxena, Florence Pojer, Antonio Carta, Rosaria Luciani, Alessio Porta, Giuseppe Zanoni, Edda De Rossi, Maria Paola Costi, Giovanna Riccardi, Stewart T. Cole

这是一个字符串。我的目标是编写一个高效的分析仪"名字。所以我基本上执行LIKE查询:

' ' || replace(authors, ',', ' ') || ' ' LIKE '{0}'.format(my_string)

我基本上用空格替换所有逗号,并在字符串的末尾和开头插入一个空格。所以,如果我寻找:

% Rossi %

我将获得所有项目,其中一位作者拥有" Rossi"作为姓氏。 " Rossi"而不是" Rossignol"或" Trossi"。

这是查找具有姓氏的作者的有效方式,因为我确定存储在数据库中的字符串包含作者的姓氏,不会改变。

但主要问题在于:"罗西"例如,是一个非常常见的姓氏。因此,如果我想寻找一个非常特别的人,我会添加他的名字。我们假设它是" Jean-Philippe"。 "让 - 菲利普"可以以多种形式存储在数据库中:" J.P Rossi"," Jean-Philippe Rossi"," J. Rossi"," Jean P. Rossi"等

所以我尝试了这个:

% J%P Rossi %

但是当然,它匹配包含J,然后是P,最后是rossi的所有内容。它匹配我给出的字符串作为示例。 (Edda De Rossi)

所以我想知道是否有办法在分隔符中剪切查询中的字符串,然后将每个部分与搜索模式匹配。

当然,我可以接受任何其他解决方案。我的目标是将搜索模式与每个作者姓名相匹配。

0 个答案:

没有答案