尝试编写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();
我怀疑我的语法错误,但任何帮助都会受到赞赏。
谢谢!
答案 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();