首页 > 解决方案 > 将原始 sql 转换为 laravel 查询生成器

问题描述

我需要帮助将此查询转换为 laravel 查询。

$sql = "SELECT*FROM `shelf` WHERE(column1 = '$col1' OR column2 = '$col1' OR column3 = '$col1' OR column4 = '$col1' OR column4 = '$col1')";
$sql = $sql."AND(column1 = '$col2' OR column2= '$col2' OR column3= '$col2' OR column4= '$col2' OR column5= '$col2')";
$sql = $sql."AND(column1 = '$col3' OR column2 = '$col3' OR column3 = '$col3' OR column4 = '$col3' OR column5 = '$col3')";

标签: phpsqllaravel-5

解决方案


这是一个奇怪的查询,但在 laravel 中它看起来像这样:

\DB::table('shelf')->where(function($query) use ($col1){
       $query->where('column1', $col1)->orWhere('column2', $col1)->orWhere('column3', $col1)->orWhere('column4', $col1)->orWhere('column5', $col1);
   })->where(function($query) use ($col2){
       $query->where('column1', $col2)->orWhere('column2', $col2)->orWhere('column3', $col2)->orWhere('column4', $col2)->orWhere('column5', $col2);
   })->where(function($query) use ($col3){
       $query->where('column1', $col3)->orWhere('column2', $col3)->orWhere('column3', $col3)->orWhere('column4', $col3)->orWhere('column5', $col3);
   })->get();

推荐阅读