mysql 中 like 的模糊匹配異常
在 mysql 中使用 like 進行模糊查詢時,可能會遇到一些與預期不同的情況。
問題:
使用 like ‘%tina rodriguez%’ 查詢 user 表,其中 user.name 字段中含有 “rodriguez” 的數據也被匹配到了。這似乎違背了 like 的模糊匹配規則,那么,這種模糊匹配的度如何規定?匹配的百分比是多少?
回答:
mysql 中的 like 查詢不區分大小寫。因此,即使紅框中提到的數據不包含 “tina”,但因為包含了 “rodriguez”,并且大小寫不區分,所以也能匹配成功。
為了避免這種誤匹配,可以在查詢中指定大小寫敏感,方法是在關鍵字 like 后面加上 binary:
SELECT * FROM user WHERE user.`name` LIKE BINARY '%Tina Rodriguez%';
此外,mysql 中并沒有明確規定模糊匹配的度或百分比。模糊匹配主要是根據指定模式的長度和字符串中匹配片段的相似程度來判斷的。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END