我正在尝试查询包含JSON列的MySQL数据库表。
在MySQL中运行以下查询
&
我能够从mysql控制台看到结果。
&
但是,当我使用Laravel QueryBuilder构建此查询时。它会引发语法错误。
Laravel代码(在控制器内):
mysql> select members from `conversations` where `members` = CAST('[1,2,3]' AS JSON) limit 3;
错误消息:
+-----------+
| members |
+-----------+
| [1, 2, 3] |
| [1, 2, 3] |
| [1, 2, 3] |
+-----------+
你能帮我知道我在哪里做错了吗?
答案 0 :(得分:1)
首先,您必须将$memberlist
转换为字符串。
$memberList = $request->input('members');
$memberListString = '[' . implode(",", $memberlist) . ']';
然后你可以使用;
DB::table("conversations")
->whereRaw("members = CAST('".$memberListString."' AS JSON)")->get();
我相信它会奏效。