0

我正在寻找一种使用 MySql 将数据库值与给定查询进行比较的方法(而不是在数据库中搜索查询)


我将详细说明:我有一个表格,其中包含逗号分隔的关键字和每个关键字块的结果,例如:

第 1 列 第 2 列

奔驰、宝马、斯巴鲁汽车

万宝路、温斯顿香烟


今天我正在接受用户查询(例如 - Marlboroligt),你可以看到我是否会在数据库中搜索值“Marlboroligt”,我不会得到任何结果。

就此而言,我想从查询中的数据库中搜索“万宝路”并返回“香烟”

希望我的解释是足够的,这实际上是可能的:-)。

4

2 回答 2

0

我看到以下可能的解决方案:

  • 设置一个像Sphinx这样的关键字搜索引擎,并使用它在你的数据库中搜索关键字
  • 标准化您的数据库 - col1 必须包含唯一的关键字
  • 使用类似的模式

    从 mytable 中选择 col2 where col1 like "%Marlboro%"

like会减慢您的应用程序的速度,并且可能会出现与子字符串相关的问题。

于 2012-08-29T14:00:30.923 回答
0

规范化对您的帮助最大。否则,此处讨论在逗号分隔的字段中的搜索:

选择所有字段包含以逗号分隔的字符串

...并且要搜索“Marlboroligt”而不是“Marlboro Light”,您可以尝试查看LEVENSHTEIN函数,或者可能是 Soundex 编码(对于太大的钱来说,这看起来太小了,但话又说回来,也许...... )。

于 2012-08-29T13:57:21.250 回答