4.2.1 [arg1,..,argN]
值可以是任何类型包括空。 表达式文本作为成员名称,也就是键。目的是很容易的将纯表中的数据转换成JSON对象。表达式会被检查以确认产生的是一个有效的javascript标识符。
有时,使用表达式作为成员名称并不恰当,可以使用别名。
4.2.2 返回
求javascript表达式的javascript值(关联数组)
4.2.3 安装
1
2
mysql> CREATE FUNCTION json_object RETURNS STRING SONAME 'lib_mysqludf_json.so';
Query OK, 0 rows affected (0.00 sec)
查看:
1
2
3
4
5
6
7
8
mysql> select * from mysql.func;
+-------------+-----+----------------------+----------+
| name | ret | dl | type |
+-------------+-----+----------------------+----------+
| json_array | 0 | lib_mysqludf_json.so | function |
| json_object | 0 | lib_mysqludf_json.so | function |
+-------------+-----+----------------------+----------+
2 rows in set (0.00 sec)
卸载:
1
mysql> DROP FUNCTION json_object;
4.2.4 实例
1
2
3
4
5
6
7
mysql> select json_object(uid, username as name, password as pw, createtime) from ttlsa_users;
+-------------------------------------------------------------------------------------------------------------+
| json_object(uid, username as name, password as pw, createtime) |
+-------------------------------------------------------------------------------------------------------------+
| {"uid":888,"name":"ttlsa_admin","pw":"6a6e41c9b741f740cfa5f266b249d452","createtime":"2013-08-10 11:27:01"} |
+-------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select json_object(uid as "uid",username as "name",password as "pw",createtime) as user from ttlsa_users;
ERROR 1123 (HY000): Can't initialize function 'json_object'; Invalid json member name - name cannot be empty
以上错误这样解决,给每个成员名称使用别名即可:
mysql> select json_object(uid as uid,username as name,password as pw,createtime as createtime) as user from ttlsa_users;
+-------------------------------------------------------------------------------------------------------------+