6 个解决方案
#2
json的如何转化成inser的sql语句呢?
#3
用脚本转 稍等哈 我给你写个脚本
本来网上搜个python的脚本改改呢 不过想到这个比较简单 就给你写这个了 自己修改一点参数
然后现在版本的liunx上都自带有php php index.php生产一下就好 不过遗憾的是json文件没发得知字段类型 索引等信息 还得自己调整下
<?php
header("content-type:text/html;charset=utf-8");
//要转的sql文件
$file = ['110.json','120.json'];
//转换以后保存的表名 跟上面一一对应即可 最后生成的文件如table110.sql
$tablename = ['table110','table120'];
foreach($file as $key => $val){
$column = '';
$createsql = '';
$sql = '';
$arr = json_decode(file_get_contents($val),true);
$createsql ='create table '.$tablename[$key].'(';
//生成插入的字段
if(empty($column)){
foreach($arr[0] as $k=>$v){
$column .= $k.',';
$createsql .= '`'.$k.'`'.' varchar(255),';
}
$column = trim($column,',');
//生成表 所有字段均varchar了 需要的话自己调整
$createsql = rtrim($createsql,',').')ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;';
}
$sql .= 'insert into '.$tablename[$key].'('.$column.')values';
//遍历数据
foreach($arr as $col => $val){
$sql .= '(';
foreach($val as $value){
$sql .= "'$value'".',';
}
$sql =rtrim($sql,',');
$sql .= '),';
}
$sql =rtrim($sql,',');
file_put_contents($tablename[$key].'.sql', $createsql.$sql);
}
本来网上搜个python的脚本改改呢 不过想到这个比较简单 就给你写这个了 自己修改一点参数
然后现在版本的liunx上都自带有php php index.php生产一下就好 不过遗憾的是json文件没发得知字段类型 索引等信息 还得自己调整下
#4
生产的脚本文件如下 勉强凑合能用
#5
还是没有搞懂你是怎么弄的?
#6
他用的是php来转的,然后一共有2个文件,于是开始遍历这2个文件,每次遍历时,先调用了 json_decode 这个函数,来解码成一个数组,先遍历这个数组取得字段名称,拼接成create table xxx (。。。),然后再遍历这个数组拿到实际的数据,变成insert into。
感觉和动态拼接sql差不多,关键还是那个 json_decode函数。
我记得mysql7.0好像引入了解析json的函数来着
#1
#2
去这里下载 上次我下载过 还不错 比较偏的或者新地可能没有 但还算比较全的
http://download.csdn.net/detail/nn360697589/9092919
json的如何转化成inser的sql语句呢?
#3
用脚本转 稍等哈 我给你写个脚本
本来网上搜个python的脚本改改呢 不过想到这个比较简单 就给你写这个了 自己修改一点参数
然后现在版本的liunx上都自带有php php index.php生产一下就好 不过遗憾的是json文件没发得知字段类型 索引等信息 还得自己调整下
<?php
header("content-type:text/html;charset=utf-8");
//要转的sql文件
$file = ['110.json','120.json'];
//转换以后保存的表名 跟上面一一对应即可 最后生成的文件如table110.sql
$tablename = ['table110','table120'];
foreach($file as $key => $val){
$column = '';
$createsql = '';
$sql = '';
$arr = json_decode(file_get_contents($val),true);
$createsql ='create table '.$tablename[$key].'(';
//生成插入的字段
if(empty($column)){
foreach($arr[0] as $k=>$v){
$column .= $k.',';
$createsql .= '`'.$k.'`'.' varchar(255),';
}
$column = trim($column,',');
//生成表 所有字段均varchar了 需要的话自己调整
$createsql = rtrim($createsql,',').')ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;';
}
$sql .= 'insert into '.$tablename[$key].'('.$column.')values';
//遍历数据
foreach($arr as $col => $val){
$sql .= '(';
foreach($val as $value){
$sql .= "'$value'".',';
}
$sql =rtrim($sql,',');
$sql .= '),';
}
$sql =rtrim($sql,',');
file_put_contents($tablename[$key].'.sql', $createsql.$sql);
}
本来网上搜个python的脚本改改呢 不过想到这个比较简单 就给你写这个了 自己修改一点参数
然后现在版本的liunx上都自带有php php index.php生产一下就好 不过遗憾的是json文件没发得知字段类型 索引等信息 还得自己调整下
#4
生产的脚本文件如下 勉强凑合能用
#5
生产的脚本文件如下 勉强凑合能用
还是没有搞懂你是怎么弄的?
#6
生产的脚本文件如下 勉强凑合能用
还是没有搞懂你是怎么弄的?
他用的是php来转的,然后一共有2个文件,于是开始遍历这2个文件,每次遍历时,先调用了 json_decode 这个函数,来解码成一个数组,先遍历这个数组取得字段名称,拼接成create table xxx (。。。),然后再遍历这个数组拿到实际的数据,变成insert into。
感觉和动态拼接sql差不多,关键还是那个 json_decode函数。
我记得mysql7.0好像引入了解析json的函数来着