我迷路了。。。我无法在数据库中获取数据。。。
所以我有一张桌子,上面有名字:preparent和fields
ID,…,参与者。。。.
我用json_encode函数将另一个表的id存储在participants字段中,如下:[4',6',8']。
我想检索所有给定ID的结果。例如,如果我有:
ID---name---participants--------otherfield
1---Step1---['6','8']-----------lorem1
2---Step2---['4','7','8']-------lorem2
3---Step3---['2','3','6','9']---lorem3
我想检索所有第6行,所以第1行和第3行。
我用雄辩的或querybuilder做了几次测试,但没有结果。
例如,我尝试过:
$idToFind = 6;
$query = PreparationStep::
whereRaw("JSON_CONTAINS(participants, ".$idToFind.")")
->get();
请帮帮我。
最佳答案
你快到了!因为JSON_CONTAINS
如果找到匹配项则返回1,如果没有,则返回0,所以必须像这样更改whereRaw
语句(参数化原始语句以防止sql注入)
$idToFind = 6;
$query = PreparationStep::whereRaw("JSON_CONTAINS(participants, ?) = 1", [$idToFind])->get();
关于php - Eloquent -在['4','6','8']之类的列中搜索ID(PHP Laravel),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47679680/