mysql的like查询区分大小写吗

在MySQL中,LIKE查询是用于在指定的列中搜索指定模式的数据。通常使用通配符(例如%,_)来匹配数据。但是,有些人可能会疑惑,MySQL的LIKE查询是否区分大小写?
区分大小写
在MySQL中,LIKE查询是默认不区分大小写的。这意味着无论你在查询中使用大写还是小写字母,结果都会返回相同的数据。例如,下面这个查询是不区分大小写的:
SELECT * FROM users WHERE name LIKE 'john%';
假设有一个名为”John Smith”的用户,以上查询会匹配到该用户,无论你是否将”John”写为大写或小写。
区分大小写的查询
如果你想要在LIKE查询中区分大小写,可以使用BINARY关键字。BINARY关键字告诉MySQL对指定的列/数据进行二进制比较,这样就可以实现区分大小写的查询。例如:
SELECT * FROM users WHERE BINARY name LIKE 'John%';
以上查询会区分大小写地匹配用户姓名以”John”开头的数据。
示例代码
假设我们有一个名为”users”的表,包含以下数据:
| id | name |
|---|---|
| 1 | John Smith |
| 2 | john doe |
| 3 | Alice Johnson |
不区分大小写查询
SELECT * FROM users WHERE name LIKE 'john%';
结果:
| id | name |
|---|---|
| 1 | John Smith |
| 2 | john doe |
区分大小写查询
SELECT * FROM users WHERE BINARY name LIKE 'John%';
结果:
| id | name |
|---|---|
| 1 | John Smith |
小结
在MySQL中,LIKE查询默认是不区分大小写的,但如果需要区分大小写,可以使用BINARY关键字。通过以上示例,你应该能够清楚地了解MySQL的LIKE查询在区分大小写方面的表现。
极客教程