您的位置:首页 > 数据库 > MySQL

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

2015-12-30 18:56 639 查看


介绍

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
plaincopy





select * from mysql.func;



删除函数

[sql] view
plaincopy





DROP FUNCTION json_array;



建测试表

[sql] view
plaincopy





create database test;

[sql] view
plaincopy





use test;

[sql] view
plaincopy





create table `users`(

`uid` int(11) unsigned,

`username` varchar(40) NOT NULL,

`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY(`uid`)

);

[sql] view
plaincopy





insert into `users` values(1,'lisi',null);

[sql] view
plaincopy





select json_array(uid,username,addtime) as u from users;





[sql] view
plaincopy





select json_array(uid,json_array(username),addtime) as u from users;



安装其它函数

[sql] view
plaincopy





CREATE FUNCTION json_object RETURNS STRING SONAME 'lib_mysqludf_json.so';

CREATE FUNCTION json_members RETURNS STRING SONAME 'lib_mysqludf_json.so';

CREATE FUNCTION json_values RETURNS STRING SONAME 'lib_mysqludf_json.so';





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

原网址为:http://blog.csdn.net/xundh/article/details/46133953
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: