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
相关文章推荐
- 允许ubuntu下mysql远程连接
- MySQL取字符串中间
- 将MYSQL数据文件拷贝到使用LVM扩容的磁盘中
- MySQL主从复制
- 浅谈MySQL表类型
- MySQL取得某一范围随机数(MySQL随机数)
- 树形菜单 的mysql 存储过程实现增删查
- 数据库链接 mysql,sqlserver
- MySQL工具汇总
- mysql中有大量sleep进程的原因与解决办法
- mysql 线程等待时间,解决sleep进程过多的办法
- MySQL数据库的一些简单操作
- mysql 删除当前数据库所有表
- MySQL修改数据表中的字段名
- 深入研究mysql中group by与order by取分类最新时间内容
- Mysql安装包下载
- mysql的主从复制
- 慢查询日志分析工具mysqldumpslow
- MySQL优化:使用慢查询日志定位效率较低的SQL语句
- Mysql数据库乱码问题