mysql - 如何从存储在序列化 JSON 列中的 Mysql 列中提取数据?

标签 mysql serialization

我在 mysql 数据库中有包含序列化数据的列(使用 PHP JSON 编码来序列化它们)。

这是一个例子:

{"name":"Group ltd","email":"support@domain.org","auth":"Andrey Ucholnik"}

mysql 中是否有一个内置函数可以在没有 PHP 的情况下提取这些值? 我的意思是构建将反序列化数据的查询。

当然可以结合使用 LOCATE 和 SUBSTR 函数来做到这一点,但如果可能的话,我更喜欢内置的东西。

最佳答案

MySQL 中没有内置函数,但通过使用 PHP 中的小代码,您可以轻松地完成以下操作:

<?php
    $json = '{{"generated": "2010-02-26T22:26:03.156866   blahblahblah   ": null, "thumbnail_url": "http://thumbs.mochiads.com/c/g/tetword-pro/_thumb_100x100.jpg", "screen4_url": "http://thumbs.mochiads.com/c/g/tetword-pro/screen4.png", "leaderboard_enabled": true, "resolution": "600x550", "width": 600}]}}';
    $out = json_decode($json, true);
    foreach($out["games"] as $game) {
        $name = addslashes($game[name]);
        $description = addslashes($game[description]);
        //Here you can use your mysql_insert code
        mysql_query("INSERT INTO games (name, description) VALUES('$name', '$description')") or die (mysql_error());
    } 
?>

关于mysql - 如何从存储在序列化 JSON 列中的 Mysql 列中提取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5094340/

相关文章:

.net - 访问串行端口需要哪些 ASP.NET 权限?

java - 在 java : automatic thread-safety? 中序列化

c++ - 如何在C++中记录用户定义的POD结构

c# - 构建一个 JsonConstructor 以便能够反序列化我的对象

c++ - 枚举序列化? C++

MySQL 不为外键创建索引

java - 向JPA中的实体添加约束外键

mysql - mysql2 和 rails3 的 RuntimeError( bundle 程序)

mysql - Java DB 选择特定行上的特定列

Mysql:如何获取具有累积和的时间片查询(意外结果)