tp5框架的Db::name查询语句问题

发布于 2022-09-12 00:27:32 字数 506 浏览 36 评论 0

我想在 user 表中获取 三个字段有4的数据,应该怎么写

QQ截图20200101210150.jpg

我目前的写法不知道是不是不正确还是本身不支持这种查询,只能一次查询一个条件,三个条件以前查询结果没有数据。

$where = [];
$user_id =  4;
$page = 1;
$limit = 20;

$where['user_pid'] = $user_id;
// $where['user_pid_2'] = $user_id;
// $where['user_pid_3'] = $user_id;
            
$list = Db::name('User')->where($where)->order($order)->page($page)->limit($limit)->select();

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

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

发布评论

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

评论(3

洒一地阳光 2022-09-19 00:27:32

你上述写法没结果是因为你的条件组合是 AND 而不是 OR ,

方法一

$list = Db::name('User')
        ->where('user_pid', 4)
        ->whereOr('user_pid2', 4)
        ->whereOr('user_pid3', 4)
        ->order($order)
        ->page($page)
        ->limit($limit)
        ->select();

方法二

$list = Db::name('User')
        ->where('user_pid|user_pid2|user_pid3', 4)
        ->order($order)
        ->page($page)
        ->limit($limit)
        ->select();
趁年轻赶紧闹 2022-09-19 00:27:32

你这样是查三个字段都等于 4 的记录。
我记得 tp5 好像有这样的写法,where("字段1|字段2|字段3", 4)
或者 whereOr

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