在 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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复