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