针对查询的mysql搜索数据库

时间:2012-08-29 13:50:49

标签: php mysql

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


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

col 1 col 2

梅赛德斯,宝马,斯巴鲁汽车

万宝路,温斯顿香烟


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

为此我想从查询中的db中搜索'Marlboro'并返回'cigarette'

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

2 个答案:

答案 0 :(得分:0)

标准化将对您有所帮助。否则,在此处讨论以逗号分隔的字段搜索:

Select all where field contains string separated by comma

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

答案 1 :(得分:0)

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

  • 设置关键字搜索引擎,例如Sphinx,并使用它来搜索数据库中的关键字
  • 规范化您的数据库 - col1必须包含唯一的关键字
  • 使用之类的模式

    从mytable中选择col2,其中col1类似于“%Marlboro%”

喜欢会降低您的应用程序速度,并且可能会出现与子字符串相关的问题。