tp5 列表数据根据状态排序

我们的列表数据有时候需要根据据状态来排序,状态有   1,2,3,4  四种状态 如果我们希望将 2 的状态排第一,那么就需要自定义状态

因为我们mysql的默认字段状态是,按照ASC方式,升序进行排序。

tp5 在进行查询前,需要通过框架的Db扩展来更改某个字段值得排序:例如,我需要将status字段的排序排成   0,1,2,8,-1的顺序

那么在查询前这么做:

$exp = new \think\Db\Expression('field(a.status,0,1,2,8,-1)');

然后在后面具体的链式操作中加上:

return Db::name('sssss')->alias('a')
    ->order($exp)
    ->where('a.is_show = 1 AND b.is_show = 1 )
    ->join('customer_invite b','b.invite_id = a.invite_id','left')
    ->select();

注意:status字段名我写成  a.status是因为 我后面的操作是进行了 联表查询a是别名!

 

### TP-Link Java开发工程师面试经验与试题 #### 微服务架构概述及其优缺点 微服务是一种软件架构风格,其中应用程序被构建为一组小型的服务集合。这些服务独立运行并相互协作完成业务功能[^3]。 其优点包括但不限于: - **高可用性和可扩展性**:单个服务可以单独扩展而不影响其他组件。 - **技术多样性支持**:不同团队可以选择最适合的技术栈来实现各自的服务模块。 然而也存在一定的局限性: - **复杂度增加**:随着数量增多,管理和维护成本上升。 - **分布式事务处理困难**:跨多个数据库操作时难以保持一致性。 #### 负载均衡算法 常见的负载均衡策略有随机法(Random)、轮询(Round Robin)以及最少连接(Least Connections)。每种方法都有特定适用场景及性能特点,在实际应用过程中需根据具体需求选取合适的方案。 #### Redis集群部署方式 Redis Cluster 是官方推荐的一种分布式的解决方案,它允许我们将数据分布在不同的节点上,并提供了自动分片的功能;另外还有 Sentinel 模式用于监控主从关系切换等高级特性管理。 ```bash redis-cli --cluster create \ 192.168.1.1:7000 192.168.1.2:7001 \ 192.168.1.3:7002 192.168.1.4:7003 \ 192.168.1.5:7004 192.168.1.6:7005 --replicas 1 ``` 上述命令展示了如何创建一个具有六个实例(三个主服务器加上它们各自的副本)组成的简单 Redis 集群环境配置示例。 #### MySQL 主从复制机制 MySQL 的主从同步主要是基于二进制日志文件(binlog),当主库执行写入语句后会产生相应的 binlog 记录,随后从库读取该记录并通过 I/O 线程将其保存到本地 relay log 中再由 SQL 线程解析重放从而达到最终一致性的目的。 ##### 配置流程概览 1. 设置 master 和 slave 上唯一 server-id; 2. 启用 binary logging 功能于 master side; 3. 授权 replication 用户权限给slave访问master资源; 4. 获取当前 position point 并告知slave开始监听更新事件流。 ##### 优势劣势对比分析 | 特性 | 正面作用 | 反面效应 | |--------------|-----------------------------------|-----------------------------| | 数据冗余 | 提升可靠性 | 增加存储开销 | | 查询分离优化 | 减轻单一实例压力 | 存在网络延迟风险 | #### 快速排序算法描述 快速排序利用分治的思想把数组分成两个子序列分别递归调用自身直到整个列表有序为止: ```python def quick_sort(arr): if len(arr) <= 1: return arr else: pivot = arr[len(arr)//2] left = [x for x in arr if x<pivot] middle=[pivot]*arr.count(pivot) right= [x for x in arr if x>pivot] return quick_sort(left)+middle+quick_sort(right) ``` #### 进程状态分类 操作系统中的进程通常处于以下三种基本状态之一:就绪态(Ready State), 执行态(Running State) 或者等待态(Blocked/Waiting State). #### Spring Boot Actuator 描述 Spring Boot Actuator 提供了一系列生产环境中常用的端点(exposed endpoints),帮助开发者轻松获取关于健康状况检查、指标统计等方面的信息以便更好地理解和诊断系统行为表现情况. #### 外键、主键和索引定义解释 - **Primary Key (PK)** : 表中每一行唯一的标识符字段组合, 不允许NULL值. - **Foreign Key (FK)** :用来建立与其他表格之间关联关系的一个或者多列构成的关键字集. - **Index**: 加速查询速度的数据结构形式; 它们能够显著提高检索效率但同时也可能带来额外的磁盘占用空间消耗等问题.[^3] #### TCP vs UDP 协议差异总结表 | 属性 | Transmission Control Protocol(TCP)| User Datagram Protocol(UDP) | |---------------|-------------------------------|----------------------------------| | 连接类型 | 面向连接 | 无连接 | | 可靠性 | 高 | 较低 | | 应用领域 | 文件传输协议FTP | 实时音视频通话 | #### Hash Table 工作原理简介 哈希表通过计算 key 对应 hash function 输出位置存取 value ,理想情况下查找时间为 O(1). 当发生碰撞冲突时采用链地址法(chaining method)解决此问题即在同一槽位维持一条链接清单容纳所有映射至此处的对象实体项. #### JVM 构成要素列举说明 Java Virtual Machine(JVM)主要包括类加载器(ClassLoader System), 方法区(Method Area), 堆内存(heap memory area), 栈(stack frame per thread), PC寄存器(Program Counter Register)这几个核心组成部分共同构成了完整的虚拟机框架体系结构图景展示如下所示: ![jvm_structure](https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/JVM_architecture.svg/1200px-JVM_architecture.svg.png) #### 设计模式运用举例分享 工厂模式(factory pattern): 创建对象而无需指定具体的类名即可动态决定实例化哪个类型的例子非常普遍存在于日常编码实践中比如 spring framework 就广泛采用了此类思想理念贯穿始终. #### 线程安全性概念阐述 如果一段程序能够在并发环境下正确地工作即使面对频繁的竞争条件也不会破坏内部逻辑那么我们就认为它是线程安全(thread-safe)的设计. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值