thinkphp5 多字段唯一查询

[
    [
        'goods_id' => 1,
        'attr_item' => '49,52'
    ], [
        'goods_id' => 1,
        'attr_item' => '49,51'
    ]
]

我想查询这样一个条件 goods_id=1 && attr_item =="49,52 || goods_id=1 && attr_item =="49,51"
这样的多字段组成唯一性 要怎么写呢

阅读 2k
1 个回答

用闭包查询

$result = Db::table('think_user')->where(function ($query) {
    $query->where('id', 1)->whereOr('id', 2);
})->whereOr(function ($query) {
    $query->where('name', 'like', 'think')->whereOr('name', 'like', 'thinkphp');
})->select();

生成的sql语句类似于下面

SELECT * FROM `think_user` WHERE  (  `id` = 1 OR `id` = 2 ) OR (  `name` LIKE 'think' OR `name` LIKE 'thinkphp' )
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题