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 中并没有明确规定模糊匹配的度或百分比。模糊匹配主要是根据指定模式的长度和字符串中匹配片段的相似程度来判断的。

以上就是MySQL LIKE 模糊匹配不区分大小写,如何避免误匹配?的详细内容,更多请关注其它相关文章!