[英]Eloquent - Search ID in column like ['4','6','8'] (PHP Laravel)
我迷路了...我无法在数据库中获取数据...
所以我有一张桌子,名字叫:准备和字段
ID,...,...,参与者,.....
我使用json_encode函数将另一个表的ID存储在参与者字段中,如下所示:['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
如果找到匹配JSON_CONTAINS
返回1,否则返回0,因此您必须像这样更改whereRaw
语句(参数化原始语句以防止sql注入)
$idToFind = 6;
$query = PreparationStep::whereRaw("JSON_CONTAINS(participants, ?) = 1", [$idToFind])->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.