Laravel Query Builder加入JSON数据列

时间:2019-03-17 13:47:21

标签: mysql json laravel eloquent query-builder

在我的数据库上,我有一个通知表,该表的数据列包含这样的JSON字符串:

{"sender_id":2,"sender_name":"John Doe","message":"Hello world!"}

我需要在users.id = notifications.data.sender_id上加入用户表,但是我不知道如何或是否有可能。找不到有关这种查询的任何信息。

期待阅读您的解决方案。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以执行以下一些简单的解决方案:

$id = 123;
YourModel::where('json_data_column', 'like', '%"sender_id":' . $id . ',%');

您基本上是在JSON中进行字符串搜索。但是,MySQL中还有一个JSON列类型,它可以更好地支持JSON搜索。然后,您可以这样做:

$id = 123;
YourModel::where('json_data_column->sender_id', $id);