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

mysql model_path longblob 类型文件操作

在 MySQL 中,如果你有一个表包含一个 `LONG BLOB` 类型的字段(例如 `model_path`),你可以使用 SQL 查询来提取该字段中的二进制数据,并将其下载为文件。以下是一个完整的步骤来实现这个过程:

 步骤1:从数据库中提取二进制数据

假设你的表名是 `models`,你可以使用以下 SQL 查询来提取二进制数据:

sql
SELECT model_path FROM models WHERE id = ?;


其中 `id` 是你希望下载的特定记录的唯一标识符。

 步骤2:将二进制数据保存为文件

你可以使用编程语言(例如 Python)来执行上述 SQL 查询,并将提取的二进制数据保存为文件。以下是一个使用 Python 和 MySQL Connector 的示例代码:

python
import mysql.connector

 数据库连接配置
config = {
    'user': 'your_username',
    'password': 'your_password',
    'host': 'your_host',
    'database': 'your_database',
}

 连接到数据库
conn = mysql.connector.connect(config)
cursor = conn.cursor()

 执行查询
query = "SELECT model_path FROM models WHERE id = %s"
model_id = 1   替换为你的实际ID
cursor.execute(query, (model_id,))

 获取二进制数据
model_data = cursor.fetchone()[0]

 将二进制数据写入文件
with open('model_file', 'wb') as file:
    file.write(model_data)

 关闭连接
cursor.close()
conn.close()


 步骤3:处理可能的问题

1. 数据库连接配置:确保配置正确,包括用户名、密码、主机地址和数据库名。
2. 查询条件:根据实际情况更改查询条件,例如 `id`。
3. 文件保存路径:根据需要更改文件的保存路径和文件名。

 示例代码解释

- `mysql.connector`:这是用于连接 MySQL 数据库的 Python 库。
- `config`:数据库连接配置,包括用户名、密码、主机地址和数据库名。
- `conn`:建立到数据库的连接。
- `cursor`:用于执行数据库查询。
- `query`:包含 SQL 查询语句。
- `model_id`:查询条件,替换为实际的记录 ID。
- `model_data`:从数据库中提取的二进制数据。
- `file.write(model_data)`:将二进制数据写入文件。

使用这个方法,你可以轻松地从 MySQL 数据库中提取 `LONG BLOB` 类型的二进制数据并将其保存为文件。

第二种使用navicat操作:

另存为桌面更改后缀如 aa.xlsx

相关文章:

  • 【GD32F303红枫派使用手册】第二十一节 I2C-EEPROM读写实验
  • C语言练习02-数组
  • 零信任介绍
  • k8s 小技巧: 查看 Pod 上运行的容器
  • windows常见问题
  • Python重力弹弓流体晃动微分方程模型和交直流电阻电容电路
  • ubuntu开机怎么进入、退出命令行界面
  • 高效BUG管理:定级、分类和处理流程
  • 【SQL】drop、delete 与 truncate 的区别
  • Excel中插入的图片在不同电脑上消失的问题及解决方法
  • 裁员裁到大动脉,是一种什么体验!
  • Spring (68)如何管理Spring Boot应用的配置
  • 【云岚到家】-day04-1-数据同步方案-Canal-MQ
  • 【C++题解】1713 - 输出满足条件的整数3
  • IP地址介绍
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • Docker容器管理
  • mysql_config not found
  • PAT A1120
  • 复习Javascript专题(四):js中的深浅拷贝
  • 警报:线上事故之CountDownLatch的威力
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用parted解决大于2T的磁盘分区
  • 通过npm或yarn自动生成vue组件
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • kubernetes资源对象--ingress
  • !!Dom4j 学习笔记
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (152)时序收敛--->(02)时序收敛二
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (7)STL算法之交换赋值
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (超详细)语音信号处理之特征提取
  • (分享)自己整理的一些简单awk实用语句
  • (回溯) LeetCode 78. 子集
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (十二)Flink Table API
  • (四)软件性能测试
  • (学习总结)STM32CubeMX HAL库 学习笔记撰写心得
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)重识new
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • ./configure,make,make install的作用(转)
  • .NET Remoting学习笔记(三)信道
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET中两种OCR方式对比
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @ComponentScan比较
  • [Algorithm][综合训练][kotori和n皇后][取金币][矩阵转置]详细讲解
  • [C#] 基于 yield 语句的迭代器逻辑懒执行