get()'去查询,应该会把这三..."/> get()'去查询,应该会把这三...">
Rumah > pembangunan bahagian belakang > tutorial php > laravel查询数据库如何实现区分大小写?

laravel查询数据库如何实现区分大小写?

WBOY
Lepaskan: 2016-07-06 13:53:05
asal
2063 orang telah melayarinya

'user'表中有个字段是'account',现需要用laravel ORM方法去查询这个字段,

例如: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(不区分大小写)

<code>  `account` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL</code>
Salin selepas log masuk

我们只需要写成这样,就可以区分大小写了。

<code>  `account` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,</code>
Salin selepas log masuk

和laravel没关系。mysql表的设置问题
php7在线编译执行

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan