首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel-5.6 'LIKE‘在哪里选择

Laravel-5.6 'LIKE‘在哪里选择
EN

Stack Overflow用户
提问于 2019-02-26 10:56:13
回答 4查看 136关注 0票数 0

我使用这个查询并得到一个错误:

代码语言:javascript
复制
 $description = $request->get('description');
        if (!empty($description)){
        $description_query = Transcationhistorique::where(['sender_id' => $user_id, "%$description%", 'LIKE','description'])
            ->orWhere('receiver_id', $user_id)->get();
        }else{
            $description_query  =  "" ;
        }

这就是我得到的错误:

"SQLSTATE42S22:未找到列:'where子句‘1054个未知列'0’(sender_id = 32和0 = %salaire%和1 = LIKE和2 = description)或receiver_id =32)

我真正想要的是:

代码语言:javascript
复制
select * from `transcation_historique` where (`sender_id` = 32 and `description` = %salaire%) or `receiver_id` = 32)
EN

回答 4

Stack Overflow用户

发布于 2019-02-26 11:03:10

尝尝这个,

代码语言:javascript
复制
$description_query = Transcationhistorique::where(
                         function($query) use ($user_id, $description){
                             return $query->where('sender_id', $user_id)
                                          ->where('description', 'like', '%' . $description .'%');

                         }
                     )
                     ->orWhere('receiver_id', $user_id)
                     ->get();
票数 3
EN

Stack Overflow用户

发布于 2019-02-26 11:08:33

您的where查询结构似乎不正确。如果要使用"=“Source以外的运算符,则应使用以下结构

代码语言:javascript
复制
$query->where([
    ['column_1', '=', 'value_1'],
    ['column_2', '<>', 'value_2'],
    [COLUMN, OPERATOR, VALUE],
    ...
])

我的建议是:

代码语言:javascript
复制
 $description = $request->get('description');
 if (!empty($description)){
     $description_query = Transcationhistorique::where([
            ['sender_id', '=', $user_id],
            ['description', 'LIKE', "%{$description}%"]
     ])
     ->orWhere('receiver_id', $user_id)->get();
 }else{
     $description_query  =  "" ;
 }
票数 1
EN

Stack Overflow用户

发布于 2019-02-26 11:28:05

试试这个:

代码语言:javascript
复制
Transcationhistorique::where('receiver_id', '=', $user_id)
        ->orWhere(function ($query) use ($user_id, $description) {
            $query->where('sender_id', '=', $user_id)->where('description', 'LIKE', "%".$description."%");
        })->get();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54883894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档