Java MySQL在两个表中查找相似数据
所以我有一个包含2个表、电影和PS3的数据库。 每个都包含标题。 我从基于视频游戏的IMDB标题列表中获得了电影标题。并不是所有的游戏都有相同的游戏名称,但可能有一两个相似的词 我想知道我如何使用ps3上的标题,并将其与电影进行比较。 我想退回类似的物品 例如,《生化危机:启示录》是一部电影,没有叫做《生化危机:启示录》的游戏,但是PS3上有不同名字的生化危机游戏,所以我想得到这些数据 我该怎么做呢?我试过了Java MySQL在两个表中查找相似数据,java,mysql,database,Java,Mysql,Database,所以我有一个包含2个表、电影和PS3的数据库。 每个都包含标题。 我从基于视频游戏的IMDB标题列表中获得了电影标题。并不是所有的游戏都有相同的游戏名称,但可能有一两个相似的词 我想知道我如何使用ps3上的标题,并将其与电影进行比较。 我想退回类似的物品 例如,《生化危机:启示录》是一部电影,没有叫做《生化危机:启示录》的游戏,但是PS3上有不同名字的生化危机游戏,所以我想得到这些数据 我该怎么做呢?我试过了 WHERE ps3.titles LIKE '%movie.titles%' 但它不
WHERE ps3.titles LIKE '%movie.titles%'
但它不起作用。
我甚至不确定它在MySQL中是否可行。
感谢您的反馈整体匹配要求很高。但在句法方面,请考虑:
WHERE ps3.titles LIKE CONCAT('%',movie.titles,'%')
MySQL将把movie.title
视为标识符(例如,作为对查询中引用的表中的列的引用)。“%”
是文本,CONCAT
将文本与列中的值串在一起,然后可以计算LIKE比较运算符
比较紧密的弦是整个大的粘蜡球 就MySQL的可用性而言,它非常有限 MyISAM引擎具有
全文索引,可用于通过“关键字”匹配查找行。(对将被索引并被视为“匹配”的字符串的长度有一个下限。我认为默认值是4个字符,这样就消除了“a”、“of”和“the”等词。)
MySQL还有REGEXP
比较运算符,比LIKE
比较运算符更强大;但你必须手工制作自己的比较
SOUNDEX
功能也可用于识别“关闭”匹配。。。比如将“启示录”与“启示录”相匹配;但我不认为这能帮你把《启示录》和《倒带:启示录编年史》相提并论
任何关于标题的匹配都是有限的,而且不精确。你会得到一些匹配项,匹配项越多,就越不对。@谢谢你的回复。不管怎么说,这肯定和他们中的很多人都很相配。谢谢你会建议如何做得更好?就像现在它匹配像“A”或“Air”等简单的词一样,我可能需要用Java做些什么来改进它吗?