zoukankan      html  css  js  c++  java
  • 记录一下,数据库连接,高级写法

    1、 whereIn ,查询结果集写法 。

    $data = Db::name('admin_user')->where('status', 1)->whereIn('id', function($query) use($structure_id) {
                        $query->name('admin_structure_duty')->where([
                            'status' => 0,
                            'structure_id' => ['IN', $structure_id]
                        ])->field('user_id')->group('user_id');
                    })->field(['id', 'realname'])->select();

    2、whereIn ,数组写法。 首先拿到字段,并且转成数组。

    对返回的结果集,某个字段是数组类型时,需要遍历出,id 对应的name时,用下面的语句:

      $list = ArticleCategoryModel::get_list(); //返回结果集,但是管理员id 是 暂存的数组转的字符串。
            foreach ($list as $value) {
                $value['managerids'] = stringToArray($value['manager']);  //将字符串  转 数组 。
                $value['managers_name'] = Db::name('admin_user')->whereIn('id', $value['managerids'])->column('realname'); // 用whereIn ,将位于此数组中的所有名字,都检索出来了。指定了column ,取值 ,这个很关键。
                $value['managers_name'] = implode(',', $value['managers_name']); // 数组转字符串,方便前端输出。
            }

    3、where ,lick写法 。

    $model = $model->where('article.name', 'LIKE', '%' . $where['name'] . '%');

    用点,连接%%。

    4、就是各种 IN 

    if (AuthService::instance()->getDutyUserIDs(0, 11) == false) {
    $post['task_admin_uid|task_sign_uid|tour_uid'] = ['IN', AuthService::instance()->uids];
    }

    就是执行起来,很舒服。代码也少。

    SQL 会这样执行:where (task_admin_uid|task_sign_uid|tour_uid)IN (65),就是3种值,都有可能在这个数字里面。

    这种集合查询,效率真高。

    5、要使用Db::table 这种语法,先引入:use think\Db;

    6、用max 函数,搭配 group函数,直接找到某一个分类里面,最大值,最新值,总和等等。真的很爽。

    我连了4张表,找最新的日期,就是用的这个。

    7、where IN ,写在字段 和 参数之间 。 where OR ,写在2个参数的后面。

    例如:

  • 相关阅读:
    解析python数据后用html输出
    python 自动化测试HTTP接口
    python 自动化对比返回结果
    Java 基础知识 练习
    Java 菜鸟学习之 script脚本语句
    java语言的认识
    Script 语言的简单练习题 乘法口诀
    Script 简单语句的练习题
    Java菜鸟培训第二天
    36个号码随机摇奖编码
  • 原文地址:https://www.cnblogs.com/xuxiaoman/p/14289513.html
Copyright © 2011-2022 走看看