如何将mysql数据库中的键和值选择为json格式
mysql5.7支持json数据类型。许多问题和office文档展示了如何将键/值保存为json格式到mysql数据库中 我的问题是,当直接执行select时,如何将键/值转换为json格式? 例如: 下表中有一个描述:如何将mysql数据库中的键和值选择为json格式,mysql,json,database-performance,Mysql,Json,Database Performance,mysql5.7支持json数据类型。许多问题和office文档展示了如何将键/值保存为json格式到mysql数据库中 我的问题是,当直接执行select时,如何将键/值转换为json格式? 例如: 下表中有一个描述: desc ttlsa_users\G; *************************** 1. row *************************** Field: uid Type: int(11) unsigned Null: NO Key: PRI De
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:
=============================================================
表中有一条记录:
uid:1
username:"Jim";
我想得到一个json格式,比如{“uid”:“1”,“username”:“jim}
如何从表中进行选择,使数据库键可以是json键,数据库值可以是json值
我之所以要这样做,是因为我需要从mysql数据库中选择数据,并在我的程序中将它们转换为json格式
还有一个问题,如果数据可以传输,那么性能如何,因为mysql需要进行转换?使用
JSON_对象([key,val[,key,val]…])计算键/值对的列表(可能为空),并返回 包含这些对的JSON对象。如果指定了任何键名,则会发生错误 NULL或参数的数量为奇数 所以你的问题是
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);
谢谢。mysql代替程序进行json转换的性能如何?除非您一次获取数千条记录,否则无论您是在这里还是在客户端执行都无所谓