如何将 mysql 数据库中的 select 键和值转换为 json 格式
how to select keys and values from mysql database to a json format
mysql5.7 已支持 json 数据类型。许多问题和办公文档显示如何将 key/value 保存为 json 格式到 mysql 数据库中。
我的问题是如何在直接执行select时将key/value格式转换为json格式?
例如:
table 的描述如下:
desc ttlsa_users\G;
*************************** 1. row ***************************
Field: uid
Type: int(11) unsigned
Null: NO
Key: PRI
Default: NULL
Extra:
*************************** 2. row ***************************
Field: username
Type: varchar(40)
Null: NO
Key:
Default: NULL
Extra:
=============================================================
并且table中有一条记录:
uid:1
username:"Jim";
我想要 json 格式,例如 {"uid":"1","username":"jim}
。
如何从 table 中 select 以便数据库键可以是 json 键并且数据库值可以是 json 值?
我想这样做的原因是我需要 select 来自 mysql 数据库的数据并在我的程序中将它们传输为 json 格式。
还有一个问题,如果数据可以传输,mysql需要做转换,性能如何?
JSON_OBJECT([key, val[, key, val] ...])
Evaluates a (possibly empty) list of key/value pairs and returns a
JSON object containing those pairs. An error occurs if any key name is
NULL or the number of arguments is odd.
所以你的查询是
SELECT JSON_OBJECT('uid',uid,'username',username) FROM ttlsa_users
至于性能,除非您一次获取数万条记录,否则无论您是在此处还是在客户端执行都无所谓。如果这是一个 Web 应用程序,那么在很可能的情况下,您只会获取少量记录。因此性能将主要取决于您的查询是否使用索引等的效率。
在php中的代码如下:
$return_arr = array();
$fetch = mysql_query("SELECT * FROM ttlsa_users\G");
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
$row_array['uid'] = $row['uid'];
$row_array['username'] = $row['username'];
array_push($return_arr,$row_array);
}
echo json_encode($return_arr);
mysql5.7 已支持 json 数据类型。许多问题和办公文档显示如何将 key/value 保存为 json 格式到 mysql 数据库中。
我的问题是如何在直接执行select时将key/value格式转换为json格式? 例如:
table 的描述如下:
desc ttlsa_users\G;
*************************** 1. row ***************************
Field: uid
Type: int(11) unsigned
Null: NO
Key: PRI
Default: NULL
Extra:
*************************** 2. row ***************************
Field: username
Type: varchar(40)
Null: NO
Key:
Default: NULL
Extra:
=============================================================
并且table中有一条记录:
uid:1
username:"Jim";
我想要 json 格式,例如 {"uid":"1","username":"jim}
。
如何从 table 中 select 以便数据库键可以是 json 键并且数据库值可以是 json 值?
我想这样做的原因是我需要 select 来自 mysql 数据库的数据并在我的程序中将它们传输为 json 格式。
还有一个问题,如果数据可以传输,mysql需要做转换,性能如何?
JSON_OBJECT([key, val[, key, val] ...])
Evaluates a (possibly empty) list of key/value pairs and returns a JSON object containing those pairs. An error occurs if any key name is NULL or the number of arguments is odd.
所以你的查询是
SELECT JSON_OBJECT('uid',uid,'username',username) FROM ttlsa_users
至于性能,除非您一次获取数万条记录,否则无论您是在此处还是在客户端执行都无所谓。如果这是一个 Web 应用程序,那么在很可能的情况下,您只会获取少量记录。因此性能将主要取决于您的查询是否使用索引等的效率。
在php中的代码如下:
$return_arr = array();
$fetch = mysql_query("SELECT * FROM ttlsa_users\G");
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
$row_array['uid'] = $row['uid'];
$row_array['username'] = $row['username'];
array_push($return_arr,$row_array);
}
echo json_encode($return_arr);