当前位置: 首页 > news >正文

whereIn 遇到了最大限制,临时表处理方式

当使用whereIn 遇到了限制,比如whereIn target ID 已经超过了10万级别,但是又没办法join其他库表时,可以使用临时表的方式解决,临时表是以一种会话的方式存在,意味着你断开了mysql 这个临时会话会自动销毁。

为了创建临时表不会有重名的方式,可以在用零时表的时候用唯一命名。

临时表一般在统计,或者一些复杂的情况下使用。

use Illuminate\Support\Facades\DB;// 创建一个临时表用于存储满足条件的订单项
DB::statement('CREATE TEMPORARY TABLE temp_order_items ASSELECT oi.*FROM order_items oiINNER JOIN orders o ON oi.order_id = o.idWHERE oi.product_id = ? AND o.status = ?', [123, 'completed']
);// 查询满足条件的订单
$filteredOrders = DB::table('orders')->join('temp_order_items', 'orders.id', '=', 'temp_order_items.order_id')->select('orders.*')->get();// 打印结果
foreach ($filteredOrders as $order) {echo "订单ID: " . $order->id . ", 金额: " . $order->total_amount . "\n";
}// 销毁临时表
DB::statement('DROP TEMPORARY TABLE IF EXISTS temp_order_items');

Eloquent ORM,你可以使用createTemporaryTable和dropTemporaryTable等方法来创建和销毁临时表

use Illuminate\Support\Facades\DB;// 创建临时表
DB::statement('CREATE TEMPORARY TABLE temporary_users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255),email VARCHAR(255)
)');// 向临时表插入数据
DB::table('temporary_users')->insert([['name' => 'User1', 'email' => 'user1@example.com'],['name' => 'User2', 'email' => 'user2@example.com'],
]);// 查询临时表中的数据
$users = DB::table('temporary_users')->get();// 在完成操作后,你可以销毁临时表
DB::statement('DROP TEMPORARY TABLE IF EXISTS temporary_users');
http://www.lryc.cn/news/163451.html

相关文章:

  • 基于SSM的校园快递代取系统设计与实现
  • MySQL事务详细讲解
  • [linux] mmcv-full 安装的时候 Building wheel 卡住
  • Python怎么实现更高效的数据结构和算法? - 易智编译EaseEditing
  • 03-zookeeper节点动态上下线案例
  • 如何使用TensorFlow完成线性回归
  • @controller和@RestController的区别
  • GeoNet: Unsupervised Learning of Dense Depth, Optical Flow and Camera Pose 论文阅读
  • 蓝桥杯官网填空题(振兴中华)
  • node基础之七:Mongodb 数据库
  • 基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
  • OPPO/真我手机ColorOS13系统解账户锁-移除手机密码图案锁方法
  • 阿里云大数据实战记录9:MaxCompute RAM 用户与授权
  • JavaScript基础07——变量拓展-数组
  • go-zerogo web集成redis实战
  • 油猴浏览器(安卓)
  • Redis 6.0多线程模型比单线程优化在哪里了
  • [hello,world]这个如何将[ ] 去掉
  • 机器学习_个人笔记_周志华(更新中......)
  • 嵌入式Linux驱动开发(LCD屏幕专题)(二)
  • React的jsx的用法
  • Ei Scopus检索 | 2024年第四届能源与环境工程国际会议(CoEEE 2024)
  • 习题练习 C语言(暑期第四弹)
  • 【docker快速部署微服务若依管理系统(RuoYi-Cloud)】
  • 面试求职-简历编写技巧
  • 云原生安全性:构建可信任的云应用的最佳实践
  • 第一章 数据库SQL-Server(及安装管理详细)
  • chrome extension无法获取window对象
  • 在linux虚拟机上安装docker(我的实践)
  • Spring之事务开发