laravel中具有相同搜索字符串的多列

时间:2018-09-01 07:08:16

标签: php laravel laravel-5

SELECT * 
FROM table_name 
WHERE 
    CONCAT(id,name, address) LIKE '%same_string%' 

Laravel

中对此有何替代查询?

3 个答案:

答案 0 :(得分:0)

尝试一下。

$field = ['name','id','address'];
$name = DB::Table('bookinfo')->Where(function ($query) use($string, $field) {
             for ($i = 0; $i < count($field); $i++){
                $query->orwhere($field, 'like',  '%' . $string .'%');
             }      
        })->get();

答案 1 :(得分:0)

尝试此操作单独的列

DB::table("table_name")->whereRaw(" (`id` like ? or `name` like ? or `address` like ? ) ",["%".$same_string."%","%".$same_string."%","%".$same_string."%"])->get();

答案 2 :(得分:0)

**      Laravel  - 在单个输入中的多列中进行常规搜索

**

其中一个用户表的名字,姓氏,职称列可用,并且我在任何值中都有一个输入搜索,然后输入并查找关联数据中的所有列并显示

 $searchQuery = trim($request->query('search'));
 $requestData = ['firstname', 'lastname', 'job_title'];
  $user = User::where(function($q) use($requestData, $searchQuery) {
                        foreach ($requestData as $field)
                           $q->orWhere($field, 'like', "%{$searchQuery}%");
                })->get();