larave orm 查询区分大小写

  • 慢点
  • 2018-12-18 16:25:23
  • 131已阅读
larave orm 查询区分大小写

背景:用户登录查询用户,发现用户名不区分大小写也能登录

把查询sql打印出来 没有发现什么问题,直接运行也能查询出来


utf8_general_ci mysql默认排序规则是不区分大小写

设置成utf8_general_cs就可以区分大小写了(高版本才支持)

不设置排序规则,只能在sql语句上加上BINARY关键字了

  • select * from userinfo where binary  username = 'along';

    select * from userinfo where username =  binary 'along';

  • 第二种使用了索引,所以。

  • 在laravel就这样搞定了。

  • ->orwhereRaw("`username`= BINARY ?", [$username])

    参考:

        https://alfred-long.iteye.com/blog/2275544