Laravel查询生成器表示JSON连接不为空

时间:2019-08-16 09:17:27

标签: laravel

我具有以下SQL,并且无法插入Laravel的构建器中:

LEFT JOIN members ON JSON_SEARCH(places.member_ids, 'one', members.id) IS NOT NULL

我尝试过:

->leftJoin("members", DB::raw("JSON_SEARCH(places.member_ids, 'one', members.id)"), "is", DB::raw("not null"))

但是生成的SQL一直变成:

left join `members` on JSON_SEARCH(places.member_ids, 'one', members.id) = `is`

如何加入不为JSON的JSON?


编辑

我为我的案件找到了缓解措施。我不确定为什么会起作用,但是会起作用。

->leftJoin("members", DB::raw("JSON_SEARCH(places.member_ids, 'one', members.id)"), "!=", DB::raw("''"))

1 个答案:

答案 0 :(得分:0)

我为您的上一个问题创建了updated version of the dbfiddle。基本上,您应该可以将普通的join($table)whereNotNull($constraint)一起使用:

->join('members')
->whereNotNull(DB::raw("JSON_SEARCH(places.member_ids, 'one', members.id)"))