我有一个数据库,其中包含乐队和其他与音乐相关的艺术家的名字。 现在,我想针对此数据库检查包含艺术家名称的字符串,并找到相似或相等的艺术家,以避免不同种类的拼写。

我发现了php函数“ similar_text”,并且我敢肯定,构建一个脚本来在循环中进行此比较没有问题。

进行这种比较的最佳和最快方法是什么?

===============>>#1 票数:1 已采纳

这取决于您的数据大小。 如果琐碎的事[几万]-然后每晚执行批处理作业,它将:

  • 从源数据中提取唯一的艺术家名称
  • 计算soundex
  • 创建密钥为soundex,值的字典-艺术家列的原始字符串列表

在此阶段,您必须决定是要自动合并还是手动批准每个重命名。 从长远来看,您可以使用带有正确拼写的帮助程序表,并且到目前为止可以找到错漏的拼写。 这些情况可以在下次遇到时自动处理。

如果soundex不够好,您可以尝试使用php的same_text,levenshtein函数,并将新添加的数据中找到的名称与您之前已经查看过的艺术家的“批准”名称进行比较。

  ask by madc translate from so

未解决问题?本站智能推荐:

1回复

比较mysql数据库和php中的用户输入

我有一个表,用于存储用户对很多问题的选择。 选择是A,B或C。(或0,1,2,但每个问题限制为3个相同的值),因此表如下所示: 我想要做的是比较选择和将用户与last.fm邻居之类的相同选择分组。 我可以使用IN和NOT IN查询将一个用户与另一个用户进行比较,或者选择所有行并
1回复

php&mysql:检查数据库大数组的最有效方法

我将大量数据存储在多维数组中。 示例结构如下: 我在mysql数据库中也有一张表,该表currently包含约80K域名。 此列表每月可能会增加约1万个域名。 目标是将Array [] [0](域名)与mysql数据库进行比较,并返回具有仅包含唯一值的保留值(但键保留并不重要)的数
4回复

哪个更快的mysql(查询)或PHP切换语句?

我很想知道是否有人能指出我正确的方向。 我想知道哪个更快.....我有一个游戏即时创建的情况有超过630,000组合我想知道如果我的脚本将寻求数据库的一个结果,会更快然后说一个大的开关声明? ....我正在创造的这个游戏是(我希望)假设是一个光线打击,我不想要任何问题
4回复

如何在mysql中查询重复的字符串条目

我有一个程序可以在MySQL记录中显示至少2个重复的相似字符串,我有一个当前的实现,但对于30万条记录来说太慢了,但效果很好。 CONTACT表条目示例: 我需要获取属于“迈克,乔恩,鲁迪和莉莉”的记录,因为它们的最后一个电话号码数字中的8个相同(重复),但是记录属于露西(因为没有
2回复

MySQL字符串比较

几个月前我问了一个类似的问题。 位于此处: MySQL Query基于字符串 我遇到的问题是,这只能在一个特定的顺序中工作,在某些情况下它工作得很好。 以下是此查询过滤掉的数据片段(重复是预期的,实际数据): 在我的上一个问题( 基于字符串的MySQL查询 )中帮助的一个查
4回复

MySQL查询比较字符串(varchar)为整数

我不确定mysql查询中是否有功能。 我有一个价格表,列名称为“ price”,其类型为VARCHAR()。 由于多种原因,我有意将其用作VARCHAR。 现在的问题是,如果我想搜索最大价格为例如100000的产品,但是在我的栏中,我们有不同类型的价格,例如: 待定374,5
5回复

MySQL与SQL Server Express性能比较

我有一个有点复杂的查询,大约有100K行。 查询在SQL Server Express中运行13秒(在我的开发框上运行) 具有相同索引和表的相同查询需要超过15分钟才能在MySQL 5.1上运行(在我的生产盒上运行 - 功能更强大,并且使用100%资源进行测试)并且有时查询会因内存不
1回复

MySQL比较忽略非字母数字字符的字符串

我正在尝试使用作为查询字符串传入的URL查询数据库,以查找正确的文章,例如: 通常,在数据库中,文章的名称应如下所示:“此处的文章名称”,因此,如果我尝试找到它出现在URL中但不带引号'则会收到错误消息。 这是获得类似Stackoverflow这样的结果的正确方法吗,它使用URL中
2回复

检查MySQL中更新行的最佳方法

我试图查看自上次检查以来是否有任何行更新。 我想知道是否还有更好的选择 但是,由于有超过200,000行,它可以变得非常快... ...数量会更好吗? 我曾想过创建一个单元测试,但我还不是最好的/: 谢谢您的帮助! 编辑:因为在许多情况下不会有任何行改变,最好总是
1回复

MySQL:选择两个数据库中时间戳不匹配的所有行

我正在尝试比较不同数据库中的两个表(或寻找最佳方法)。 数据库一中的表: 数据库二中的表: 两个表都有匹配的ID(id在db1中不是唯一的。像一个(db2)到多个(db1))和时间戳(但其他列不同)。 但随着时间的推移,数据库2中的记录将被更新(数据在一个不重要的列中)。