Mysql模糊查询默认是不区分字母大小写的

2,121 阅读1分钟

今天用mysql进行模糊查询时,意外的发现mysql的模糊查询是不区分字母的大小写的

原代码:

select r.*, u.name, u.id
from tb_report r,
     tb_user u
where r.report_user = u.id
  and r.isdelete = 0
  and r.report_status = 1
  and (r.report_title like '%A%'
  or u.name like '%A%')

修改之后的sql语句:

select r.*, u.name, u.id
from tb_report r,
     tb_user u
where r.report_user = u.id
  and r.isdelete = 0
  and r.report_status = 1
  and (r.report_title like binary '%A%'
  or u.name like binary '%A%')

可以发现,我在like后面加上了binary这个关键字,它可以让mysql的模糊查询以区分大小写的形式进行。