如何在laravel where子句中使用“ CONCAT”而不使用模型

时间:2018-09-29 13:03:55

标签: php mysql laravel eloquent concat

我有一个表('mbo_party'),该表的第一列和最后两列(我先用它来存储名字,最后用它来存储姓氏)。假设我将Debanjan存储在“ first”列中,将Ganguly存储在“ last”中。因此,在搜索字段中,如果通过“ Debanjan Ganguly”进行一次搜索,我如何从该列中获取所有数据。我正在使用laravel 5.4,未使用任何模型。我在控制器中编写查询。到目前为止,这是我的代码...

控制器

    $party_name = $request->get('party_name');
        $query = DB::table('mbo_party')->where('concat(first," ",last)' , '=' , $party_name)->first();

查看

    <form id="party_search_it" method="GET" action="{{route('mbo-index')}}"> 
        {{ csrf_field() }}
        <input type="text" class="form-control" name="party_name" placeholder="Search for Party Name..." autocomplete="off">
    </form>

我的表格视图 Here's my Table View

在这种方法中,当我在控制器中使用echo时,它显示为空白。

    echo"<pre>";print_r($query);die;

我想知道执行这种操作的正确语法

2 个答案:

答案 0 :(得分:0)

尝试

$query = DB::table('mbo_party')->where(DB::raw("CONCAT(first,' ',last)"), 'LIKE', '%' . $party_name . '%')->first();

答案 1 :(得分:0)

这应该有效:

$query = DB::table('mbo_party')->whereRaw('CONCAT(`first`," ",`last`) = "' . $party_name . '"'))->first();