tp5写sql语句

怎样用tp5写出如下sql?

SELECT * FROM `student` WHERE `sex` = 1 AND ((`age` IN (10,11,12) 

AND `name` LIKE '%李%') OR (`age` IN (15,16,17) AND `name` LIKE  '%长%'));
阅读 1.7k
2 个回答

大概应该是这样子。

Student::where('sex', '=', 1)
  ->where(function($query){
    $query->where(function($query){
      $query->where('age' , 'in', [10,11,12])->where('name','like','%李%');
    })
      ->orWhere(function($query){
        $query->where('age', 'in', [15,16,17])->where('name', 'like', '%长%');
      })
    
  })
$sql = "SELECT * FROM `student` WHERE `sex` = 1 AND ((`age` IN (10,11,12) AND `name` LIKE '%李%') OR (`age` IN (15,16,17) AND `name` LIKE  '%长%'));";
$list = Db::query($sql);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进