lib_mysqludf_json 把mysql关系型数据转换成json格式的UDF工具

介绍

mysql里的数据格式转成json格式,通常使用php的json扩展实现。如果使用udf,会有更快的速度。

lib_mysqludf_json提供下面功能:

1.可变长度的参数列表允许直接映射

2.自动转义适应json语法

3.NULL处理

字符串null映射到javascript null,数字null映射到java NaN

4.表达式自动映射成json对象成员

5.json成员名称基本的有效性检查

6.json嵌套


lib_mysqludf_json库提供函数有:

  • json_array
  • json_members
  • json_object
  • json_values

安装

下面示例使用ubuntu64bit.
安装mysql的时候,需要安装
apt-get install  libmysqld-dev libmysqlclient-dev
否则会找不到mysql_config文件 。

官网地址:
https://github.com/mysqludf/lib_mysqludf_json

查找plugin目录:

show variables like '%plugin%';


# wget https://github.com/mysqludf/lib_mysqludf_json/archive/master.zip
# unzip master.zip
# cd lib_mysqludf_json-master
# mv lib_mysqludf_json.so  lib_mysqludf_json.so_bak
# gcc $(/usr/bin/mysql_config --cflags) -shared -fPIC -o lib_mysqludf_json.so lib_mysqludf_json.c
# cp lib_mysqludf_json.so /usr/lib/mysql/plugin/
# mysql -uroot -p -h127.0.0.1
mysql> CREATE FUNCTION json_array RETURNS STRING SONAME 'lib_mysqludf_json.so';
Query OK, 0 rows affected (0.00 sec)

使用

验证是否安装成功:

[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. select * from mysql.func;  


删除函数

[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. DROP FUNCTION json_array;  


建测试表

[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. create database test;  
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. use test;  

[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. create table `users`(  
  2. `uid` int(11) unsigned,  
  3. `username` varchar(40) NOT NULL,  
  4. `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  
  5. PRIMARY KEY(`uid`)  
  6. );  

[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. insert into `users` values(1,'lisi',null);  

[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. select json_array(uid,username,addtime) as u from users;  

 
 
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. select json_array(uid,json_array(username),addtime) as u from users;  



安装其它函数

[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. CREATE FUNCTION json_object RETURNS STRING SONAME 'lib_mysqludf_json.so';  
  2. CREATE FUNCTION json_members RETURNS STRING SONAME 'lib_mysqludf_json.so';  
  3. CREATE FUNCTION json_values RETURNS STRING SONAME 'lib_mysqludf_json.so';  



本文转自:谢厂节的博客,转载请注明出处

原网址为:http://blog.youkuaiyun.com/xundh/article/details/46133953

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值