【发布时间】:2019-03-17 13:47:21
【问题描述】:
在我的数据库中,我有一个通知表,其中有一个包含 JSON 字符串的数据列,如下所示:
{"sender_id":2,"sender_name":"John Doe","message":"Hello world!"}
我需要的是加入 users.id = notifications.data.sender_id 上的用户表,但我不知道如何或是否有可能。找不到有关此类查询的任何信息。
期待阅读您的解决方案。谢谢!
【问题讨论】:
-
json_decode($string, true);对其进行解码,但对于查询它,我认为没有可能的方法。为什么不将它们存储为单独的列? -
我正在处理一个包含大量数据库记录的现有项目。更改数据库结构不是一种选择..
-
只有这3个键吗?如果是这样,老实说,我会更改数据库结构,否则您需要使用 %like% 进行查询,这会慢很多
-
大多数时候是的,但有些情况下还有 2 个额外的键...
-
让我们听听其他人会怎么说。如果不是,那么更改数据库并不难,您只需要一个播种机在您的数据库中以正确的格式播种数据:) 我怀疑当前的结构将来会继续咬你 - 或者至少添加 1
sender_id的表中的新列并保持 json 列不变,将解决您的问题
标签: mysql json laravel eloquent query-builder