【问题标题】:Larawel orWhere query from concat two columnLaravel orWhere 来自 concat 两列的查询
【发布时间】:2020-04-02 16:03:08
【问题描述】:

我有一个用户表: 编号 |名字 |姓 显示用户数据时,我有一个过滤器名称,因此用户可以按名称(名字、姓氏或全名)搜索; 问题是当我输入它的全名时,它会导致 0 个数据, 例如: 拳名:迈克尔 姓氏: foobar 当我寻找“michael”和“foobar”时我没有问题,但是当我寻找“michael foobar”时它什么也没返回

我的代码如下所示:

$dataQuery  = $dataQuery->where(function ($dataQuery) use ($fullname) {
            $dataQuery->where('users.firstname', 'like', '%' . $fullname . '%')
                  ->orWhere('users.lastname', 'like', '%' . $fullname . '%')
                  ->orWhere('CONCAT_WS(" ", `users.firstname`, `users.lastname`)', 'LIKE', '%' . $fullname . '%');
        });

ps:对不起,我的英文不好,希望大家理解

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    你正在使用mysql内置函数CONCAT_WS,请使用DB::raw()作为函数:

    ->orWhere(DB::raw('CONCAT_WS(" ", `users.firstname`, `users.lastname`)'), 'LIKE', '%' . $fullname . '%');
    

    【讨论】:

      猜你喜欢
      • 2015-02-22
      • 2023-04-05
      • 2021-02-11
      • 2015-02-26
      • 2018-06-26
      • 2015-12-24
      • 2020-01-01
      • 2016-11-16
      • 2014-06-27
      相关资源
      最近更新 更多