Laravel-5.6'LIKE'在哪里选择
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel-5.6'LIKE'在哪里选择相关的知识,希望对你有一定的参考价值。
我使用此查询,我收到一个错误:
$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 = "" ;
}
这是我得到的错误:
“SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'0'(SQL:select * from
transcation_historique
where(sender_id
= 32 and0
=%salaire%and1
= LIKE and2
= description)或receiver_id
= 32)“
这就是我真正想要的:
select * from `transcation_historique` where (`sender_id` = 32 and `description` = %salaire%) or `receiver_id` = 32)
答案
试试这个,
$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();
另一答案
看起来你的查询结构不正确。如果要使用“=”Source以外的运算符,则应使用以下结构
$query->where([
['column_1', '=', 'value_1'],
['column_2', '<>', 'value_2'],
[COLUMN, OPERATOR, VALUE],
...
])
我的建议是:
$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 = "" ;
}
另一答案
试试这个:
Transcationhistorique::where('receiver_id', '=', $user_id)
->orWhere(function ($query) use ($user_id, $description) {
$query->where('sender_id', '=', $user_id)->where('description', 'LIKE', "%".$description."%");
})->get();
另一答案
您可以使用多个where
方法作为and
。你能试试下面的代码吗?
$description = $request->get('description');
if (!empty($description)){
$description_query = Transcationhistorique::where('sender_id', $user_id)
->where("description", 'LIKE','%' . $description . '%')
->orWhere('receiver_id', $user_id)->get();
}else{
$description_query = "" ;
}
以上是关于Laravel-5.6'LIKE'在哪里选择的主要内容,如果未能解决你的问题,请参考以下文章
请教在MySQL怎么反过来LIKE某个字段? 我们通常都是 LIKE '%关键字%' 这样找出记录 我现在的情况是在字段