Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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 如何从存储在SQL中一列中的json中获取前10个值?_Mysql_Sql - Fatal编程技术网

Mysql 如何从存储在SQL中一列中的json中获取前10个值?

Mysql 如何从存储在SQL中一列中的json中获取前10个值?,mysql,sql,Mysql,Sql,我有一个表名players,其中我将json数组存储到stats列中,如下所示 {"sbuilders":{"perfect_builds":2,"rounds_wins":3,"games_played":10}, "ffa":{"uhc":{"deaths":12,"kills":8}, "op"

我有一个表名
players
,其中我将json数组存储到
stats
列中,如下所示

{"sbuilders":{"perfect_builds":2,"rounds_wins":3,"games_played":10},
 "ffa":{"uhc":{"deaths":12,"kills":8},
        "op":{"kills":5,"deaths":1},
        "classic":{"deaths":70,"kills":115}}}

但是我怎样才能从这个表中获得前10名sbuilders游戏呢?

我在mysql中很少使用JSON,所以这很有趣

您可以使用JSON_EXTRACT从JSON对象中提取JSON属性;然后,您可以根据需要使用此结果

select JSON_EXTRACT(i.j, '$.sbuilders.games_played') as gamesplayed from i;

看来你需要加入

选择*
来自玩家
按JSON排序(统计,'$.sbuilders.games_played')描述
限制10

提供一些示例数据作为(创建表+插入)脚本(5-6行)和此数据的所需输出(前3行,而不是前10行),并提供一些解释。还要指定精确的MySQL版本。我不确定你在问什么。你能澄清一下吗?正如Akina所问的,可能会向我们展示表中的一些示例数据,您用来插入的SQL是什么,您试图用什么来提取数据?从这个问题上看不清楚如何提供帮助。它没有按顺序恢复random@Maël如果你收到随机订单,那么你做错事了。提供一个样本(正如我在对问题的评论中所说的)。我从你的请求中得到了这个,就像没有订单一样,我想就是这样,但是我如何通过添加订单?这对你有用吗?选择JSON_EXTRACT(i.j,$.sbuilders.games_played)作为通过JSON_EXTRACT(i.j,$.sbuilders.games_played)desc从i order显示的游戏;这不正常