从MySql数据库的JSON列获取数据

时间:2019-01-16 09:56:12

标签: php laravel

在我的表中有一列包含JSON编码数据,并且一条记录如下所示

{"late_fee":10,
"due_date":"2019-10-01 00:00:00",
"property_type":"house"
}

从数据库获取数据时,我需要在late_fee数据列中不存在键JSON的记录。如何将其置于where状态?

这是我必须在上面添加条件的代码行:

$payments = Rent::where('property_id', $property['id']);`

编辑

通过您发表的评论,可以确认一下这是正确的方法吗?

$payments = Rent::where('property_id', $property['id'])->whereJsonContains('notification_settings->late_fee', null);

P.S。 notification_settings是存储JSON数据的列的名称。

1 个答案:

答案 0 :(得分:0)

只需阅读以下简短文章: https://laravel.com/docs/5.7/queries#json-where-clauses

应该可以:

$payments = Rent::where('property_id', $property['id'])->whereJsonContains('notification_settings->late_fee', null);