mysql - Laravel“where”子句默认不区分大小写?
问题描述
今天令人惊讶的是,我很震惊 Laravel 8 雄辩的 WHERE 子句不敏感。
我怎样才能让它再次敏感?
这是我的代码路由/web.php
Route::get('/{slang}', function($slang) {
$post = App\Models\Post::where('slang', $slang)->first();
if( ! isset( $post->id ) ) return redirect('/');
return
response()->json(['content' => 'Welcome to ['. $post->slang.']', 'code'=>200, 'var'=>$slang] );
});
结果
content:"Welcome to [DAL51]"
code: 200
var: "dAl51"
解决方案
您需要使用DB::raw()
,例如:
App\Models\Post::where(DB::raw('BINARY slang'), $slang)->first();
或者,您可以使用whereRaw()
方法:
App\Models\Post::whereRaw('BINARY slang=?', $slang)->first();
推荐阅读
- redis - 是否可以在 Redis 上同步主节点
- python - 为什么我在使用 Pickle 和 Socket 库 Python 时出现 Unpickling 错误
- sql - 表模式和名称的正则表达式验证
- python - sam deploy 失败并出现错误存储桶位于此区域:us-east-2。请将此区域用于 us-east-2
- python - 'builtin_function_or_method' 对象没有属性 'apply' cv2
- c++ - 用C++从一个段落中找到一个句子中的最大单词数
- rest - 使用 Bitrix 24 REST API 将 CRM 项目链接到日历事件
- angular - Highcharts:在 X/Y 轴末端添加箭头
- reactjs - React js路由未显示组件
- winforms - 将字符串转换为数学表达式 [arduino]