ThinkPHP5.1 查询所有数据并排除某些字段数据

ThinkPHP5.1 查询所有数据并排除某些字段数据


在使用 thinkphp5.1 的时候,难免会碰到这样的场景。 我要查询数据库某张表的所有数据,但可能要排除个别某些字段

当然,良好的习惯是将所有的字段都罗列出来,并将其中个别不要的字段删除即可 。但如果字段数量非常多时,恐怕身为程序员的我们内心是崩溃的。

但是 ,若是我们想偷偷懒,应该怎么做?

解决方法如下:

还是使用 field 字段:

字段排除


如果我希望获取排除数据表中的content字段(文本字段的值非常耗内存)之外的所有字段值,我们就可以使用field方法的排除功能,例如下面的方式就可以实现所说的功能:

Db::table('think_user')->field('content',true)->select();

则表示获取除了content之外的所有字段,要排除更多的字段也可以:

Db::table('think_user')->field('user_id,content',true)->select();
//或者用
Db::table('think_user')->field(['user_id','content'],true)->select();

注意的是 字段排除功能不支持跨表和join操作。

很显然, field 字段第二个参数是排除某字段,默认 false 不排除,设置为 true 即可排除:

/**
     * 指定查询字段 支持字段排除和指定数据表
     * @access public
     * @param  mixed   $field
     * @param  boolean $except    是否排除
     * @param  string  $tableName 数据表名
     * @param  string  $prefix    字段前缀
     * @param  string  $alias     别名前缀
     * @return $this
     */
    public function field($field, $except = false, $tableName = '', $prefix = '', $alias = ''){}

官方参考资料:field

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值