问题:我使用的是 MYSQL 和 PHP 最新版本。我们在 MYSQL FULLTEXT 搜索中面临这个问题。它不适用于特殊字符。
示例:在域表中,“名称”字段具有以下三个值:
1. https://www.google.com
2. https://www.yahoo.com
3. https://www.trafe.com
如果我使用搜索词https://www.google.com
,它将显示上述所有三个值作为结果,但正确答案是https://www.google.com.
Query:
SELECT name
FROM domains
WHERE MATCH (name) AGAINST ('https://www.google.com*' IN BOOLEAN MODE);
实际结果:https://www.google.com
使用双引号:https://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html https://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html
包含在双引号 (“””) 字符内的短语匹配
仅包含按字面意思输入的短语的行。
例如:
SELECT name
FROM domains
WHERE MATCH (name) AGAINST ('"https://www.google.com"' IN BOOLEAN MODE);
Result:
name
https://www.google.com
如果你真的想要那个*
你可以搜索'"https://www.google.com*"'
(*
放在双引号内)。
这是 SQL 小提琴:http://sqlfiddle.com/#!9/a6458/6 http://sqlfiddle.com/#!9/a6458/6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)