如何解决 Laravel eloquent 中 json 数据的区分大小写的 where like 语句?

How can I solve case-sensitive where like statement on json data in Laravel eloquent?

我使用 Laravel 5.6 和 mysql 数据库。

我的Laraveleloquent查询是这样的:

Order::where('information->owner', 'like', '%'.$receipt.'%')->paginate(5);

信息字段是 JSON 类型。

{"owner": "Chelsea"}

如果$receiptChel,查询returns一个结果。

但如果$receiptchelCHEL,则结果为空

我该如何解决这个问题?

如果每个所有者都以大写首字母开头,您可以使用 ucfirst 将字符串的首字母大写

$receipt = ucfirst($receipt);
Order::where('information->owner', 'like', '%'.$receipt.'%')->paginate(5);

尝试比较转换为小写或大写后的值。

Order::whereRaw('LOWER(JSON_EXTRACT(information, "$.owner")) like ?', ['"%' . strtolower($receipt) . '%"'])
     ->paginate(5);