Laravel 9使用和 /或组合失败

发布于 2025-02-09 08:47:29 字数 625 浏览 1 评论 0原文

我想写下以下查询,但不会产生我想要的结果。

SELECT * FROM TABLE1 WHERE COLUMN1 = 'DATA' AND ( COLUMN2 LIKE 'K%' OR COLUMN3 LIKE 'K%' OR COLUMN4 = '[email protected]') 

我希望上述查询在Laravel 9中雄辩,我已经写下了下面的书,但仍未产生相同的结果。

DB::table('table1')->where(function ($query) use ($request) {
$query->where('column2', 'LIKE', $request -> data)
-> orWhere('column3', 'LIKE', $request -> data ) 
 -> orWhere('column4', '=', $request -> data ) ;
})->get();

提前致谢。

I want to write below queries but it doesn't produce the result that I want.

SELECT * FROM TABLE1 WHERE COLUMN1 = 'DATA' AND ( COLUMN2 LIKE 'K%' OR COLUMN3 LIKE 'K%' OR COLUMN4 = '[email protected]') 

I want above queries eloquent in Laravel 9, I have written as below but still doesn't produce the same result.

DB::table('table1')->where(function ($query) use ($request) {
$query->where('column2', 'LIKE', $request -> data)
-> orWhere('column3', 'LIKE', $request -> data ) 
 -> orWhere('column4', '=', $request -> data ) ;
})->get();

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

指尖凝香 2025-02-16 08:47:29

您缺少第一个关于column1不是吗?

当前,它会产生:

SELECT * FROM table1 WHERE (column2 LIKE 'a' OR column3 LIKE 'b' OR column4 = 'c')

更新您的代码以包括第一个其中

DB::table('table1')
    ->where('column1', 'DATA')
    ->where(function ($query) use ($request) {
        $query->where('column2', 'LIKE', $request->data)
          ->orWhere('column3', 'LIKE', $request->data ) 
          ->orWhere('column4', '=', $request->data ) ;
    }
)->get();

现在,它应该按预期工作(至少将产生您期望的查询)。

You are missing the first where about COLUMN1 isn't?

Currently, it produces:

SELECT * FROM table1 WHERE (column2 LIKE 'a' OR column3 LIKE 'b' OR column4 = 'c')

Update your code to include the first where:

DB::table('table1')
    ->where('column1', 'DATA')
    ->where(function ($query) use ($request) {
        $query->where('column2', 'LIKE', $request->data)
          ->orWhere('column3', 'LIKE', $request->data ) 
          ->orWhere('column4', '=', $request->data ) ;
    }
)->get();

And now, it should work as expected (at least, it will produce the query you are expecting).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文