我具有以下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("''"))
答案 0 :(得分:0)
我为您的上一个问题创建了updated version of the dbfiddle。基本上,您应该可以将普通的join($table)
与whereNotNull($constraint)
一起使用:
->join('members')
->whereNotNull(DB::raw("JSON_SEARCH(places.member_ids, 'one', members.id)"))