Laravel使用相等的运算符查询MySQL JSON列

时间:2016-03-26 21:36:34

标签: php mysql json laravel

我正在尝试查询包含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] |
+-----------+

你能帮我知道我在哪里做错了吗?

1 个答案:

答案 0 :(得分:1)

首先,您必须将$memberlist转换为字符串。

$memberList = $request->input('members');
$memberListString = '[' . implode(",", $memberlist) . ']';

然后你可以使用;

DB::table("conversations")
    ->whereRaw("members = CAST('".$memberListString."' AS JSON)")->get();

我相信它会奏效。