我有一个表格产品,用户需要能够使用文本字段上的自动完成功能搜索产品。但我也希望当人们在名称上犯一些小错误时,它也会被发现。
需要什么
我所有的标题格式如下:[brand] [productnamename] [versionname] 例如,我有一个产品 'foo evo HD3455' 我需要在输入 'foo' 或 'evo' 或 'HD2455 时找到它' 或其中的一部分,但当他们键入 'froo eno HD3455' 时,他们也需要找到它
我有的
我有这个 SQL 查询:
SELECT * FROM `product` WHERE SOUNDEX(title) LIKE CONCAT('%',SUBSTRING(SOUNDEX('here the search text'),2),'%')
什么不工作
它适用于品牌,即使您在名称上犯了一点错误,但是当我搜索 [productname] 或 [versionname] 时,它就不起作用了。当我先键入 [brand] 然后键入 [versionname] 时,其中包含 [versionname] 的结果不显示。
我需要它的地方
我打算将它用于自动完成字段,以便用户可以轻松找到产品,即使他们在搜索文本中犯了错误。
我不能使用全文搜索,因为我使用的是 innoDB