数据库中的序列化SQL

时间:2013-02-25 22:57:29

标签: 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:"";}}

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

1 个答案:

答案 0 :(得分:3)

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

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