mysql - 数据库中的序列化 SQL

标签 mysql sql

我有一个客户使用 Woocommerce/Wordpress 建立了一个基本的 ecomm 商店。在数据库中,所有订单项目都是序列化的。例如:

a:1:{i:0;a:10:{s:2:"id";s:2:"25";s:12:"variation_id";s:0:"";s:4:"name";s:10:"The Hobbit";s:3:"qty";i:1;s:9:"item_meta";a:0:{}s:13:"line_subtotal";s:4:"17.5";s:17:"line_subtotal_tax";s:4:"1.84";s:10:"line_total";s:4:"17.5";s:8:"line_tax";s:4:"1.84";s:9:"tax_class";s:0:"";}}

不是数据库天才 - 为什么要序列化任何数据?这有什么好处吗?此外,是否可以反序列化 SQL 以检索该数组中的各个值?

最佳答案

这不是序列化的 SQL,它是序列化的数据,其格式看起来像是来自 PHP 的 serialize() 函数。您可以通过 PHP 通过 unserialize() 运行它,但在原始 SQL 中并没有真正可靠的方法来执行此操作。

在这种情况下,这似乎是将无模式数据(即特定记录可能存在或不存在的数据,本质上可能是任意的)保存到数据库中。

关于mysql - 数据库中的序列化 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15078139/

相关文章:

mysql - 存储大量数据的最佳方法

mysql - 如何将 mysql_data_seek 与 PDO 一起使用?

mysql - SQL 左内连接 (mysql)

sql - SSIS 隐藏工作表作为 Excel 目标

mysql - 检索每组中的最后一条记录 - MySQL

sql - 生成报告,例如收入/损失等

php - 在 Moodle 2.X 中向类(class)设置添加字段

mysql - 统计重复行的结果数量sql

php - 使用 php、pdo 和 mysql 显示当前登录用户的简单计数器

sql - Oracle SQL - 圆形 - 一半