MySQL LIKE 模糊匹配不區分大小寫,如何避免誤匹配?

MySQL LIKE 模糊匹配不區分大小寫,如何避免誤匹配?

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
喜歡就支持一下吧
點贊7 分享