我是靠谱客的博主 名字长了才好记,这篇文章主要介绍thinkphp实现多个或条件查询and (rank 1 OR rank2 1),现在分享给大家,希望可以做个参考。

ThinkPHP 中,你可以使用查询构造器 where 方法来构造 AND (rank <> 1 OR rank2 <> 1) 这样的 SQL 查询。


实现方式

Db::name('your_table')
    ->where(function ($query) {
        $query->where('rank', '<>', 1)
              ->whereOr('rank2', '<>', 1);
    })
    ->select();


SQL 解释

这段代码会生成类似的 SQL 语句:

SELECT * FROM your_table WHERE (rank <> 1 OR rank2 <> 1);

由于 where() 默认是 AND 连接,所以我们使用 where(function ($query) { ... })rank <> 1 OR rank2 <> 1 作为一个整体条件。


完整示例

use think\facade\Db;

$result = Db::name('your_table')
    ->where(function ($query) {
        $query->where('rank', '<>', 1)
              ->whereOr('rank2', '<>', 1);
    })
    ->select();

print_r($result);

如果要使用变量传递

$value = 1; // 你要传递的参数
$result = Db::name('your_table')
    ->where(function ($query) use ($value) { // 通过 use 传递变量
        $query->where('rank', '<>', $value)
              ->whereOr('rank2', '<>', $value);
    })
    ->select();

解释:

  • 这里 use ($value) 让闭包内部能够访问外部定义的 $value 变量,从而动态传递值。

其他写法

你也可以直接传入 exp() 方法构造 SQL 语句:

Db::name('your_table')
    ->whereRaw('(rank <> 1 OR rank2 <> 1)')
    ->select();


这样就可以在 ThinkPHP 中正确执行 AND (rank <> 1 OR rank2 <> 1) 的查询了!

最后

以上就是名字长了才好记最近收集整理的关于thinkphp实现多个或条件查询and (rank 1 OR rank2 1)的全部内容,更多相关thinkphp实现多个或条件查询and内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(186)

评论列表共有 0 条评论

立即
投稿
返回
顶部