Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将mysql数据库中的键和值选择为json格式_Mysql_Json_Database Performance - Fatal编程技术网

如何将mysql数据库中的键和值选择为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

mysql5.7支持json数据类型。许多问题和office文档展示了如何将键/值保存为json格式到mysql数据库中

我的问题是,当直接执行select时,如何将键/值转换为json格式? 例如:

下表中有一个描述:

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转换的性能如何?除非您一次获取数千条记录,否则无论您是在这里还是在客户端执行都无所谓