我正在开发一个搜索功能来搜索模型号,我正在尝试让MySQL向我显示与我所要求的相似的结果,但是LIKE%$var%没有做到这一点。
示例(我们将调用table,“tbl_models”):

    id           model
+-------+--------------------+
|   1   |    DV6233SE        |
|   2   |    Studio 1440     |
|   3   |    C762NR          |
+-------+--------------------+

使用当前使用的搜索框进行搜索时:
SELECT id, model FROM tbl_models WHERE model LIKE %$var% ORDER BY id DESC

如果我搜索“C7”,它将返回“C762NR”,这是好的,但说我是搜索“C760”或“C700”或打字“C726NR”?在MySQL(或PHP、JS、jQuery)中,有没有一种方法可以扩展返回结果的限制,以包含不同的变体或接近的匹配项?
我也不想找人帮我写,只要往正确的方向推一推就很有帮助了!

最佳答案

如果我用逻辑来回答你的问题,我就走这条路。
找到接近的匹配项-
我将采用用户最初键入的输入参数。例如“ABCDEF”
然后,我将从中创建多个参数,方法是将输入参数中的每个字符替换为“\u”。
即“ABCDEF”将为我生成以下输入参数。
‘u BCDEF’、‘A_CDEF’、‘AB_DEF’、‘ABC_EF’、‘abu F’、‘ABCDE’
然后我将输入参数传递给SQL查询,并使用OR操作查找数据。
上面的方法会给我1个字符不同的单词。
我可以通过用下划线替换2个字符,然后是3个字符,然后是4个字符来扩展它。
最多需要替换多少个字符,取决于字符串的长度。

09-26 23:54
查看更多