gpt4 book ai didi

php - Laravel Eloquent 对 mysql 表进行 AND 操作的方法

转载 作者:行者123 更新时间:2023-11-29 09:37:00 24 4
gpt4 key购买 nike

我是 Laravel 的新手。我有一个像这样的表 Audience_tags:

tag  | audience
Tall | Anurag
Nice | Anurag
Tall | Kapil
Nice | Simon

所以,

If I query for ['Tall'] it should return Anurag, Kapil
If I query for ['Nice'] it should return Anurag, Simon
If I query for ['Tall', 'Nice'] it should only return Anurag

目前,我正在这样做:

$audienceIds = DB::table("audience_tags")->whereIn("tag", $request->tagIds)->pluck("audience");

但它会返回 Anurag、Kapil 和 Simon 的 ['Tall'、'Nice']

最佳答案

您将无法使用该结构转义group by

$audiences = \DB::table("audience_tags")
->whereIn("tag", $request->tagIds)
->groupBy('audience')
->havingRaw('count(tag) = ?', count($request->tagIds))
->pluck('audience');

声明表 audiencestags 后,您可以利用 Audiencetags 之间的关系 belongToMany Tag 模型(假设 tag_id 是表 Tags 中的主键)

$tagIds = $request->tagIds;
$audiences = Audience::whereHas('tags', function($tag) use ($tagIds) {
$tag->whereIn('tag_id', $tagIds);
})->get(); //or pluck whatever attribute

关于php - Laravel Eloquent 对 mysql 表进行 AND 操作的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57395029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com