我正在寻找搜索解决方案。很少有产品的名称:
- USB 金士顿 8GB
- USB Kingmax 8GB
- USB 超越 8GB
- USB Sandisk 4GB
我正在使用mysql数据库,我尝试过全文搜索。
从与 ('usb 8g') 匹配的产品中选择 * ('productName')
。
还有sphinx,但当输入“usb 8g”时我没有得到任何结果。但是“usb 8gb”,它有效。
而且我还需要当用户输入“ubs 8gb”时,它也会返回正确的结果。
有什么像Google一样自动识别的解决方案吗?
最佳答案
您必须使用通配符%
来匹配部分数据字符串。
尚未测试,但应该像这样工作:
SELECT * FROM PRODUCTS WHERE MATCH('productName') AGAINST ('usb 8g%')
附注在发送到 SQL 语句之前,请先清理用户输入。
关于php - PHP 搜索时漏掉一个字符怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42467189/