Laravel Concat - 语法或访问冲突

时间:2017-06-13 09:16:53

标签: php mysql laravel

尝试编写MySQL查询以根据两列搜索用户:

如first_name

我想将first_name和surname连接为名称,然后根据它编写搜索查询。

我目前已经编写了一些PHP代码,但我一直收到错误:

  

SQLSTATE [42000]:语法错误或访问冲突:1064您有   SQL语法错误;查看与您的手册相对应的手册   MariaDB服务器版本的正确语法在'%?%'附近使用   1(SQL:从users中选择users。*,其中CONCAT(first_name,'',   surname)LIKE%Stu%)

我目前的PHP代码如下:

// Search Based on Q..
$q = $request->input('q');

$results = User::select('users.*')->WhereRaw("CONCAT(`first_name`, ' ', `surname`) LIKE %?%", [$q])->get();

我怀疑我的语法错误,但任何帮助都会受到赞赏。

谢谢!

2 个答案:

答案 0 :(得分:2)

%移至参数:

$results = User::select('users.*')
    ->WhereRaw("CONCAT(`first_name`, ' ', `surname`) LIKE ?", ['%' . $q . '%'])
    ->get();

答案 1 :(得分:1)

您的查询中的两个错误as fullname没有提及第二个like operator ..我已修复这些错误

$q = $request->input('q');
     $results = User::select('users.*')
     ->WhereRaw("CONCAT(`first_name`, ' ', `surname`) as fullname
     LIKE ?", ['%' . $q . '%'])->get();