mysql - Laravel 使用 Like 运算符和 '%"通过原始查询添加参数

标签 mysql laravel

我做了一些分配参数的方法,但它不起作用

这是我的代码:

$sqlDefault = "Select * from histories as h where h.status like % :status %";

return DB::select(DB::raw($sqlDefault), ['status' => $status]);

它不起作用,所以我尝试了另一种分配方式:

'%:status%''%':status'%'

但是不行

现在我不使用参数而且它工作得很好

$sqlDefault = "Select * from historys as h where h.status like '%$status%'";

问题是在将 like 运算符与“%”一起使用时如何使用参数?

最佳答案

$status 替换为 '%'.$status.'%'

$sqlDefault = "Select * from histories as h where h.status like  :status ";

return DB::select(DB::raw($sqlDefault,['status' => '%'.$status.'%']));

或者只使用选择:

return  = DB::select(sqlDefault , ['status' => '%'.$status.'%']);

关于mysql - Laravel 使用 Like 运算符和 '%"通过原始查询添加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45363837/

相关文章:

php - 宅基地初始化未定义

mysql - 通过 SHOW TABLE STAUS 查询选择特定列

php - 表单重复插入所有用户的数据

MYSQL 如何仅当另一个表中不存在两列的唯一键对时才更新表?

php - Laravel:在浏览器上显示 localhost:8000 时出错

javascript - Laravel - jQuery 在正确的路径下不工作?

mysql - 如何查询MySQL中某列的变化次数

MYSQL:仅选择 sum == 0 的列

php - 不应静态调用非静态方法 Illuminate\Support\Collection::where()

php - Laravel Blade(将数据显示为新行)