我不会在雄辩的模型中搜索不区分大小写的代码。现在我习惯了
Model::where($column, 'LIKE', '%' . $value . '%' ); 
但这是区分大小写的。我该如何解决?
我也可以找到此帖子,如何使用LIKE通配符在列中搜索(不区分大小写)?但我不能在雄辩的模型中使用它
小智 13
实际上,您不需要使用UPPER,仅用ilike作比较器,它将进行区分大小写的比较。
Model::where('column', 'ilike', '%' . $value . '%')
您确实需要%标志来表示要搜索的子字符串。
Laravel 雄辩搜索不区分大小写,您的查询中不需要类似的 upper 或 lower 函数。
只需使用:
Model::query()
    ->where('column1_name', 'LIKE', "%{$search}%") 
    ->orWhere('column2_name', 'LIKE', "%{$search}%") 
    ->orWhere('column3_name', 'LIKE', "%{$search}%") 
    ->get();
orWhere 部分是为了防止您有多个要查询的表字段
小智 8
没有看到这个解决方案。所以我在这里张贴。
DB::table('products')
   ->select('productid')                
   ->where(DB::raw('lower(product)'), 'like', '%' . strtolower($searchword) . '%')
   ->get();
这应该有效。
替换column和$text。
$model = Models::whereRaw( 'LOWER(`column`) LIKE ?', [ $text ] )->first();
小智 5
你的表格排序是怎样的?
这是数据库中排序规则的特殊性,请尝试使用latin_general_ci或latin_gerneral_cs,它们是不区分大小写的。
但是,如果您尝试以utf8_bin为例,它将不会运行,因为此排序规则很敏感。
所有示例都在 MySql 下运行。
小智 5
我建议在这种情况下上功能
Model::whereRaw("UPPER('.$column.') LIKE '%'". strtoupper($value)."'%'"); 
像这样
| 归档时间: | 
 | 
| 查看次数: | 9375 次 | 
| 最近记录: |