例如:user表中有三条数据,account字段的值分别为:abc,abc,abc,现在用'user::where(account,abc)->get()'去查询,应该会把这三条数据都会拿到,而我想要的是只得到account值为abc的这一条数据,如何实现??数据库是mysql
回复内容: 'user'表中有个字段是'account',现需要用laravel orm方法去查询这个字段,
例如:user表中有三条数据,account字段的值分别为:abc,abc,abc,现在用'user::where(account,abc)->get()'去查询,应该会把这三条数据都会拿到,而我想要的是只得到account值为abc的这一条数据,如何实现??数据库是mysql
mysql的表相应字段加上binary
http://cevin.net/archives/%e8%ae%a9mysql%e6%9f%a5%e8%af%a2%e5%8c%ba%e5%88%86%e5%a4%a7%e5%b0%8f%e5%86%99.html
@cevin 说的是在查询时区分和直接使用二进制类型的方法。个人觉得都不太妥当。建表时不设计好约束,查询时强制二进制对比,尤其不好,这回让你代码中多出很多判断,且还有可能被绕过。至于直接使用二进制字段,mysql不会将它当成字符来处理,我觉得也可能存在问题。下面给出我的解决方法。
我们常用的是这样的建表语句。它的collate已经声明为ci(不区分大小写)
`account` varchar(255) character set utf8 collate utf8_general_ci not null
我们只需要写成这样,就可以区分大小写了。
`account` varchar(255) character set utf8 collate utf8_bin not null,
和laravel没关系。mysql表的设置问题
php7在线编译执行
