将MySQL(JSON)查询转换为Laravel Eloquent

将MySQL(JSON)查询转换为Laravel Eloquent,mysql,laravel,Mysql,Laravel,我正在尝试将MySQL查询(其中包含MySQL json函数)转换为Laravel雄辩的查询。下面是我的Mysql查询。我必须在laravel 5.3版中构建这个雄辩的查询。尝试过json函数,但仍停留在json函数上 MYSQL查询: SELECT id FROM `house_json` WHERE JSON_CONTAINS( JSON_EXTRACT(construction_json, "$.house.room[*].window"), '"Removed"' ) AND for

我正在尝试将MySQL查询(其中包含MySQL json函数)转换为Laravel雄辩的查询。下面是我的Mysql查询。我必须在laravel 5.3版中构建这个雄辩的查询。尝试过json函数,但仍停留在json函数上

MYSQL查询:

SELECT  id FROM `house_json`  WHERE JSON_CONTAINS( JSON_EXTRACT(construction_json, "$.house.room[*].window"), '"Removed"' ) AND form_id=5 AND action_date BETWEEN '2020-05-25' AND '2020-05-27'
雄辩的质疑:

$data_query = HouseData::select('house_json.id as ID')
->where('house_json.form_id',5)
->whereBetween('house_json.action_date', ['2020-05-25', '2020-05-27']) ->whereRaw('json_contains("json_extract("house_json.construction_json", "$.house.room[*].window")", '"Removed"')')
->get();
示例JSON(存储在名为-construction_JSON的表字段中):


试试这个,我之前解决过同样的问题,如下所示


$data_query = HouseData::select('house_json.id as ID')->
where('house_json.form_id', 5)->
whereBetween('house_json.action_date', ['2020-05-25', '2020-05-27'])->
whereRaw('JSON_CONTAINS(
    JSON_EXTRACT(
        house_json.construction_json,
        "$.house.room[*].window"),
    "Removed")')->
get();


试试这个,我之前解决过同样的问题,如下所示


$data_query = HouseData::select('house_json.id as ID')->
where('house_json.form_id', 5)->
whereBetween('house_json.action_date', ['2020-05-25', '2020-05-27'])->
whereRaw('JSON_CONTAINS(
    JSON_EXTRACT(
        house_json.construction_json,
        "$.house.room[*].window"),
    "Removed")')->
get();


到目前为止,您有什么,您在哪里遇到了问题?我已将查询转换为:$data\u query=HouseData::select('house\u json.id as id')->where('house\u json.form\u id',5)->whereBetween('house\u json.action\u date',['2020-05-25','2020-05-27'])->whereRaw('json\u包含('json\u extract('house_json.construction_json“,“$.house.room[*].window”),“'Removed')”)->get();我被困在json_包含和json_提取部分,我必须在laravel版本5.3Nice中构建这个查询。请用那个代码编辑你的问题好吗?用正确的格式阅读它要容易得多。另外,一些示例JSON数据也可能有助于理解您的问题。@JorisJ1我更新了问题的更多细节。示例json是我存储到表中的内容到目前为止您有什么,您在哪里遇到了问题?我已将查询转换为:$data\u query=HouseData::select('house\u json.id as id')->where('house\u json.form\u id',5)->where-where('house\u json.action\u date',['2020-05-25',2020-05-27'])->where-raw('u包含json(“json_extract(“house_json.construction_json”、“$.house.room[*].window”)、“‘Removed’)”)->get();我被困在json_contains和json_extract部分,我必须在laravel版本5.3Nice中构建此查询。请用这些代码编辑您的问题好吗?用正确的格式阅读它要容易得多。此外,一些示例json data也可能有助于理解您的问题。@JorisJ1我已更新了问题的更多细节。示例json是我存储在表中的内容