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.
create table link
(
id bigint not null primary key,
jsonvalue json not null
);

INSERT INTO link (id, jsonvalue)
WITH RECURSIVE
cte AS ( SELECt 1 num
UNION ALL
SELECT num + 1 FROM cte WHERE num < 100 )
SELECT num, JSON_ARRAY(JSON_OBJECT('fieldId', CAST(RAND() * 100 AS UNSIGNED), 'fieldValue', ROUND(RAND() * 1000)),
JSON_OBJECT('fieldId', CAST(RAND() * 100 AS UNSIGNED), 'fieldValue', ROUND(RAND() * 1000)))
FROM cte;

SELECT id, CAST(jsonvalue AS CHAR) jsonvalue FROM link;
Records: 100  Duplicates: 0  Warnings: 0
id jsonvalue
1 [{"fieldId": 16, "fieldValue": 432.0}, {"fieldId": 69, "fieldValue": 153.0}]
2 [{"fieldId": 69, "fieldValue": 13.0}, {"fieldId": 98, "fieldValue": 875.0}]
3 [{"fieldId": 43, "fieldValue": 502.0}, {"fieldId": 24, "fieldValue": 673.0}]
4 [{"fieldId": 66, "fieldValue": 273.0}, {"fieldId": 39, "fieldValue": 124.0}]
5 [{"fieldId": 45, "fieldValue": 900.0}, {"fieldId": 14, "fieldValue": 992.0}]
6 [{"fieldId": 55, "fieldValue": 752.0}, {"fieldId": 12, "fieldValue": 352.0}]
7 [{"fieldId": 40, "fieldValue": 922.0}, {"fieldId": 42, "fieldValue": 356.0}]
8 [{"fieldId": 51, "fieldValue": 471.0}, {"fieldId": 83, "fieldValue": 745.0}]
9 [{"fieldId": 23, "fieldValue": 922.0}, {"fieldId": 92, "fieldValue": 811.0}]
10 [{"fieldId": 31, "fieldValue": 118.0}, {"fieldId": 66, "fieldValue": 942.0}]
11 [{"fieldId": 73, "fieldValue": 833.0}, {"fieldId": 97, "fieldValue": 349.0}]
12 [{"fieldId": 84, "fieldValue": 133.0}, {"fieldId": 16, "fieldValue": 391.0}]
13 [{"fieldId": 48, "fieldValue": 230.0}, {"fieldId": 71, "fieldValue": 842.0}]
14 [{"fieldId": 9, "fieldValue": 935.0}, {"fieldId": 40, "fieldValue": 190.0}]
15 [{"fieldId": 75, "fieldValue": 199.0}, {"fieldId": 73, "fieldValue": 61.0}]
16 [{"fieldId": 11, "fieldValue": 375.0}, {"fieldId": 54, "fieldValue": 573.0}]
17 [{"fieldId": 25, "fieldValue": 518.0}, {"fieldId": 85, "fieldValue": 677.0}]
18 [{"fieldId": 85, "fieldValue": 211.0}, {"fieldId": 51, "fieldValue": 908.0}]
19 [{"fieldId": 2, "fieldValue": 364.0}, {"fieldId": 77, "fieldValue": 740.0}]
20 [{"fieldId": 40, "fieldValue": 782.0}, {"fieldId": 71, "fieldValue": 202.0}]
21 [{"fieldId": 88, "fieldValue": 802.0}, {"fieldId": 36, "fieldValue": 416.0}]
22 [{"fieldId": 99, "fieldValue": 683.0}, {"fieldId": 46, "fieldValue": 231.0}]
23 [{"fieldId": 79, "fieldValue": 236.0}, {"fieldId": 82, "fieldValue": 411.0}]
24 [{"fieldId": 59, "fieldValue": 692.0}, {"fieldId": 70, "fieldValue": 443.0}]
25 [{"fieldId": 10, "fieldValue": 195.0}, {"fieldId": 66, "fieldValue": 710.0}]
26 [{"fieldId": 58, "fieldValue": 746.0}, {"fieldId": 0, "fieldValue": 773.0}]
27 [{"fieldId": 86, "fieldValue": 968.0}, {"fieldId": 27, "fieldValue": 433.0}]
28 [{"fieldId": 36, "fieldValue": 522.0}, {"fieldId": 52, "fieldValue": 16.0}]
29 [{"fieldId": 53, "fieldValue": 606.0}, {"fieldId": 44, "fieldValue": 374.0}]
30 [{"fieldId": 55, "fieldValue": 649.0}, {"fieldId": 58, "fieldValue": 958.0}]
31 [{"fieldId": 5, "fieldValue": 370.0}, {"fieldId": 71, "fieldValue": 414.0}]
32 [{"fieldId": 96, "fieldValue": 539.0}, {"fieldId": 83, "fieldValue": 520.0}]
33 [{"fieldId": 12, "fieldValue": 24.0}, {"fieldId": 77, "fieldValue": 768.0}]
34 [{"fieldId": 54, "fieldValue": 377.0}, {"fieldId": 28, "fieldValue": 250.0}]
35 [{"fieldId": 42, "fieldValue": 363.0}, {"fieldId": 55, "fieldValue": 651.0}]
36 [{"fieldId": 61, "fieldValue": 97.0}, {"fieldId": 65, "fieldValue": 979.0}]
37 [{"fieldId": 93, "fieldValue": 731.0}, {"fieldId": 85, "fieldValue": 69.0}]
38 [{"fieldId": 79, "fieldValue": 736.0}, {"fieldId": 32, "fieldValue": 372.0}]
39 [{"fieldId": 91, "fieldValue": 439.0}, {"fieldId": 46, "fieldValue": 990.0}]
40 [{"fieldId": 57, "fieldValue": 860.0}, {"fieldId": 60, "fieldValue": 428.0}]
41 [{"fieldId": 33, "fieldValue": 391.0}, {"fieldId": 95, "fieldValue": 583.0}]
42 [{"fieldId": 6, "fieldValue": 547.0}, {"fieldId": 56, "fieldValue": 149.0}]
43 [{"fieldId": 7, "fieldValue": 916.0}, {"fieldId": 36, "fieldValue": 59.0}]
44 [{"fieldId": 21, "fieldValue": 878.0}, {"fieldId": 76, "fieldValue": 152.0}]
45 [{"fieldId": 49, "fieldValue": 981.0}, {"fieldId": 44, "fieldValue": 265.0}]
46 [{"fieldId": 100, "fieldValue": 205.0}, {"fieldId": 2, "fieldValue": 510.0}]
47 [{"fieldId": 47, "fieldValue": 839.0}, {"fieldId": 77, "fieldValue": 358.0}]
48 [{"fieldId": 46, "fieldValue": 240.0}, {"fieldId": 81, "fieldValue": 344.0}]
49 [{"fieldId": 28, "fieldValue": 382.0}, {"fieldId": 6, "fieldValue": 153.0}]
50 [{"fieldId": 58, "fieldValue": 466.0}, {"fieldId": 57, "fieldValue": 472.0}]
51 [{"fieldId": 64, "fieldValue": 786.0}, {"fieldId": 1, "fieldValue": 683.0}]
52 [{"fieldId": 39, "fieldValue": 909.0}, {"fieldId": 37, "fieldValue": 125.0}]
53 [{"fieldId": 51, "fieldValue": 195.0}, {"fieldId": 43, "fieldValue": 571.0}]
54 [{"fieldId": 56, "fieldValue": 90.0}, {"fieldId": 77, "fieldValue": 571.0}]
55 [{"fieldId": 55, "fieldValue": 46.0}, {"fieldId": 58, "fieldValue": 740.0}]
56 [{"fieldId": 97, "fieldValue": 645.0}, {"fieldId": 31, "fieldValue": 597.0}]
57 [{"fieldId": 7, "fieldValue": 537.0}, {"fieldId": 49, "fieldValue": 832.0}]
58 [{"fieldId": 69, "fieldValue": 977.0}, {"fieldId": 80, "fieldValue": 74.0}]
59 [{"fieldId": 96, "fieldValue": 604.0}, {"fieldId": 12, "fieldValue": 805.0}]
60 [{"fieldId": 66, "fieldValue": 868.0}, {"fieldId": 37, "fieldValue": 237.0}]
61 [{"fieldId": 8, "fieldValue": 695.0}, {"fieldId": 23, "fieldValue": 71.0}]
62 [{"fieldId": 66, "fieldValue": 102.0}, {"fieldId": 52, "fieldValue": 292.0}]
63 [{"fieldId": 90, "fieldValue": 631.0}, {"fieldId": 45, "fieldValue": 354.0}]
64 [{"fieldId": 42, "fieldValue": 56.0}, {"fieldId": 1, "fieldValue": 880.0}]
65 [{"fieldId": 37, "fieldValue": 216.0}, {"fieldId": 97, "fieldValue": 183.0}]
66 [{"fieldId": 2, "fieldValue": 533.0}, {"fieldId": 62, "fieldValue": 478.0}]
67 [{"fieldId": 54, "fieldValue": 285.0}, {"fieldId": 79, "fieldValue": 114.0}]
68 [{"fieldId": 19, "fieldValue": 601.0}, {"fieldId": 44, "fieldValue": 384.0}]
69 [{"fieldId": 61, "fieldValue": 892.0}, {"fieldId": 63, "fieldValue": 496.0}]
70 [{"fieldId": 58, "fieldValue": 395.0}, {"fieldId": 24, "fieldValue": 31.0}]
71 [{"fieldId": 43, "fieldValue": 43.0}, {"fieldId": 93, "fieldValue": 539.0}]
72 [{"fieldId": 89, "fieldValue": 854.0}, {"fieldId": 59, "fieldValue": 374.0}]
73 [{"fieldId": 11, "fieldValue": 416.0}, {"fieldId": 76, "fieldValue": 546.0}]
74 [{"fieldId": 45, "fieldValue": 623.0}, {"fieldId": 76, "fieldValue": 931.0}]
75 [{"fieldId": 37, "fieldValue": 79.0}, {"fieldId": 27, "fieldValue": 118.0}]
76 [{"fieldId": 78, "fieldValue": 530.0}, {"fieldId": 32, "fieldValue": 14.0}]
77 [{"fieldId": 11, "fieldValue": 497.0}, {"fieldId": 16, "fieldValue": 314.0}]
78 [{"fieldId": 9, "fieldValue": 499.0}, {"fieldId": 23, "fieldValue": 652.0}]
79 [{"fieldId": 57, "fieldValue": 900.0}, {"fieldId": 78, "fieldValue": 224.0}]
80 [{"fieldId": 77, "fieldValue": 157.0}, {"fieldId": 49, "fieldValue": 970.0}]
81 [{"fieldId": 39, "fieldValue": 23.0}, {"fieldId": 96, "fieldValue": 711.0}]
82 [{"fieldId": 69, "fieldValue": 298.0}, {"fieldId": 43, "fieldValue": 269.0}]
83 [{"fieldId": 5, "fieldValue": 435.0}, {"fieldId": 3, "fieldValue": 832.0}]
84 [{"fieldId": 8, "fieldValue": 897.0}, {"fieldId": 25, "fieldValue": 548.0}]
85 [{"fieldId": 100, "fieldValue": 349.0}, {"fieldId": 75, "fieldValue": 694.0}]
86 [{"fieldId": 22, "fieldValue": 40.0}, {"fieldId": 53, "fieldValue": 511.0}]
87 [{"fieldId": 98, "fieldValue": 361.0}, {"fieldId": 87, "fieldValue": 257.0}]
88 [{"fieldId": 68, "fieldValue": 638.0}, {"fieldId": 14, "fieldValue": 809.0}]
89 [{"fieldId": 61, "fieldValue": 631.0}, {"fieldId": 32, "fieldValue": 703.0}]
90 [{"fieldId": 56, "fieldValue": 673.0}, {"fieldId": 70, "fieldValue": 465.0}]
91 [{"fieldId": 23, "fieldValue": 779.0}, {"fieldId": 19, "fieldValue": 610.0}]
92 [{"fieldId": 48, "fieldValue": 582.0}, {"fieldId": 46, "fieldValue": 573.0}]
93 [{"fieldId": 47, "fieldValue": 644.0}, {"fieldId": 80, "fieldValue": 86.0}]
94 [{"fieldId": 2, "fieldValue": 841.0}, {"fieldId": 14, "fieldValue": 201.0}]
95 [{"fieldId": 57, "fieldValue": 258.0}, {"fieldId": 57, "fieldValue": 97.0}]
96 [{"fieldId": 76, "fieldValue": 526.0}, {"fieldId": 34, "fieldValue": 108.0}]
97 [{"fieldId": 53, "fieldValue": 323.0}, {"fieldId": 3, "fieldValue": 160.0}]
98 [{"fieldId": 72, "fieldValue": 137.0}, {"fieldId": 52, "fieldValue": 168.0}]
99 [{"fieldId": 29, "fieldValue": 947.0}, {"fieldId": 87, "fieldValue": 490.0}]
100 [{"fieldId": 85, "fieldValue": 794.0}, {"fieldId": 41, "fieldValue": 666.0}]
ALTER TABLE link ADD INDEX IDX_LEFT_FIELD ((CAST(`jsonvalue`->'$[*].fieldId' AS unsigned ARRAY)));
Records: 0  Duplicates: 0  Warnings: 0
SELECT id, CAST(jsonvalue AS CHAR) jsonvalue
FROM link
WHERE 10 MEMBER OF (`jsonvalue`->'$[*].fieldId');
id jsonvalue
25 [{"fieldId": 10, "fieldValue": 195.0}, {"fieldId": 66, "fieldValue": 710.0}]
EXPLAIN
SELECT id, CAST(jsonvalue AS CHAR) jsonvalue
FROM link
WHERE 10 MEMBER OF (`jsonvalue`->'$[*].fieldId');
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE link null ref IDX_LEFT_FIELD IDX_LEFT_FIELD 9 const 1 100.00 Using where
SELECT id, CAST(jsonvalue AS CHAR) jsonvalue
FROM link
WHERE JSON_CONTAINS(`jsonvalue`->'$[*].fieldId', CAST('[10]' AS JSON));
id jsonvalue
25 [{"fieldId": 10, "fieldValue": 195.0}, {"fieldId": 66, "fieldValue": 710.0}]
EXPLAIN
SELECT id, CAST(jsonvalue AS CHAR) jsonvalue
FROM link
WHERE JSON_CONTAINS(`jsonvalue`->'$[*].fieldId', CAST('[10]' AS JSON));
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE link null range IDX_LEFT_FIELD IDX_LEFT_FIELD 9 null 1 100.00 Using where
SELECT id, CAST(jsonvalue AS CHAR) jsonvalue
FROM link
WHERE JSON_OVERLAPS(`jsonvalue`->'$[*].fieldId', CAST('[10]' AS JSON));
id jsonvalue
25 [{"fieldId": 10, "fieldValue": 195.0}, {"fieldId": 66, "fieldValue": 710.0}]
EXPLAIN
SELECT id, CAST(jsonvalue AS CHAR) jsonvalue
FROM link
WHERE JSON_OVERLAPS(`jsonvalue`->'$[*].fieldId', CAST('[10, 20, 30]' AS JSON));
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE link null range IDX_LEFT_FIELD IDX_LEFT_FIELD 9 null 3 100.00 Using where