【发布时间】:2021-12-04 18:34:40
【问题描述】:
我想用这个语句在 MySQL 中构建一个查询:
SELECT CONCAT(students.FirstName, ' ', students.LastName) AS FullName FROM `students` WHERE CONCAT(students.FirstName, ' ', students.LastName)LIKE '%John%'
现在,我使用 Laravel 的 Query Builder,我可以使用 CONCAT() 匹配列。这是我的代码供参考:
public function getStudent(Request $request)
{
$fullName = Student::select(FacadesDB::raw('SELECT CONCAT(LastName, ", ", FirstName) AS FullName'), )
->where(FacadesDB::raw('CONCAT(LastName, ", ", FirstName)', 'LIKE', "'% {{ $request->terms }} %'"))
->get();
return response()->json($fullName);
}
当我尝试运行代码时,我得到了这样的结果:
SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的 'SELECT CONCAT(LastName, ", ", FirstName) AS FullName from
studentswhere CO...' 附近使用正确的语法(SQL:选择 SELECT CONCAT (LastName, ", ", FirstName) AS FullName fromstudentswhere CONCAT(LastName, ", ", FirstName) is null)
有没有一种方法可以实现这一目标?我花了将近 4 个小时来解决此代码,但我仍然无法解决它。每一个帮助将不胜感激。顺便说一句,我是 Laravel 的新用户。
【问题讨论】: