add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
SELECT @@version
@@version
8.0.36
CREATE TABLE `tab` ( `jsdata` VARCHAR(1000) )
INSERT INTO `tab` VALUES
('{"x": 1, "y": 2, "z": 3}'),
('{"e": 4, "k": 5}')
Records: 2  Duplicates: 0  Warnings: 0
WITH k AS
(
SELECT *,
ROW_NUMBER() OVER(PARTITION BY `jsdata` ORDER BY value DESC) AS rn,
JSON_KEYS(`jsdata`) AS jk
FROM `tab` AS t
JOIN JSON_TABLE(
`jsdata`,
'$.*' COLUMNS (value INT PATH '$')
) j
)
SELECT JSON_UNQUOTE(JSON_EXTRACT(jk, CONCAT('$[',rn-1,']'))) AS "key", value
FROM k
key value
e 5
k 4
x 3
y 2
z 1
SELECT JSON_UNQUOTE(
JSON_EXTRACT(JSON_KEYS(`jsdata`),
CONCAT('$[',
ROW_NUMBER() OVER(PARTITION BY `jsdata` ORDER BY value DESC)-1,
']'))) AS "key", value
FROM `tab` AS t
JOIN JSON_TABLE(
`jsdata`,
'$.*' COLUMNS (value INT PATH '$')
) j
key value
65 5
6b 4
78 3
79 2
7a 1