首页 > 解决方案 > Laravel if 查询中的语句

问题描述

我是初学者 php 开发人员。

我有这个代码:

Model::selectRaw('clients.*, if((client_company_infos.name != "" , client_company_infos.type == 1),  client_company_infos.name, concat(client_infos.first_name, " ", client_infos.last_name)) as name')
            ->leftJoin('client_company_infos', 'client_company_infos.client_id', '=', 'clients.id')
            ->leftJoin('client_infos', 'client_infos.client_id', '=', 'clients.id')
            ->get();

我有错误:

“消息”:“SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在 '== 1)、client_company_infos 附近使用的正确语法.name, concat(client_infos.first_name, " ", client_i' at line 1 (SQL: select clients.*, if((client_company_infos.name != "" , client_company_infos.type == 1), client_company_infos.name, concat( client_infos.first_name, " ", client_infos.last_name)) 作为. = .左连接 clientsclient_company_infos的 名称。= .其中 .为空)",client_company_infosclient_idclientsidclient_infosclient_infosclient_idclientsidclientsdeleted_at

当我做:

Model::selectRaw('clients.*, if(client_company_infos.name != "",  client_company_infos.name, concat(client_infos.first_name, " ", client_infos.last_name)) as name')
            ->leftJoin('client_company_infos', 'client_company_infos.client_id', '=', 'clients.id')
            ->leftJoin('client_infos', 'client_infos.client_id', '=', 'clients.id')
            ->get();

它工作正常。问题。我与第二个如果。我怎样才能修复它?

请帮我

标签: phplaravel

解决方案


MySql中没有运算符==

您需要将条件替换为以下内容:

client_company_infos.type = 1

推荐阅读