晚上好,
我在尝试构建一个小搜索算法时面临一个小问题。
我有一个包含视频游戏名称和软件名称的数据库表。现在我想通过在其他服务器上获取和解析 xml 文件来添加新的报价。问题是:
如何比较产品名称的字符串,以便即使优惠名称与存储在我的数据库中的产品名称不匹配 100% 也能正常工作?
作为一个例子,我目前正在使用这个 PHP + SQL 代码来比较字符串:
$query_GID = "select ID,game from gkn_catalog where game like '%$batch_name%' or meta like '%$batch_name%' ";
我目前正在将like运算符与两个通配符结合使用,以将商品名称 ( batch_name ) 与数据库中的名称 ( game ) 进行比较。
我想知道如何改进这一点,因为这种方法不是很安全,或者你想怎么称呼它,会发生什么:
如果数据库显示游戏名称为:
Deus Ex 人类革命缺少链接
batch_name 说:
Deus Ex 人类革命缺少链接DLC
结果将是空的/错误的/错误的......好吧,它根本不会在我的数据库中找到游戏。
类似这样的事情也是如此:
数据库 = Lego Star Wars The Complete Saga
batch_name = Lego Star Wars : The Complete Saga
结果:False
有没有更好的方法来进行 SQL 查询?
或者我该如何尝试使该查询正常工作,以便它可以处理带有特殊字符(如 -minus- 和 [括号])的字符串
和或数据库名称中未包含的字符(如 DLC、CE ...)?