अपनी सरणी को पंक्तियों में बदलने के तीन तरीके यहां दिए गए हैं। उसी ग्रहण किए गए JSON मान का उपयोग करना:
SET @j = '[10, 20, {"a": "bbb"}]';
संख्याओं की इन-लाइन तालिका का उपयोग करना। MySQL और MariaDB संगत:
WITH sequenceGenerator (sequenceNumber) AS (
SELECT 0 AS sequenceNumber
UNION ALL
SELECT 1
UNION ALL
SELECT 2
)
SELECT
JSON_EXTRACT(@j, CONCAT('$[', sequenceNumber, ']')) AS arrayValue
FROM
sequenceGenerator;
MySQL 8.0.4+ JSON_TABLE() का उपयोग करना:
SELECT
arrayValue
FROM
JSON_TABLE(
@j,
'$[*]'
COLUMNS(
arrayValue JSON PATH '$')
) AS tt;
इन-लाइन अनुक्रम तालिका से छुटकारा पाने के लिए MariaDB SEQUENCE इंजन का उपयोग करना:
SELECT
JSON_EXTRACT(@j, CONCAT('$[', seq, ']')) AS arrayValue
FROM
seq_0_to_2;
मारियाडीबी में अधिक सामान्य बनाने के लिए, सरणी लंबाई के लिए "सर्वश्रेष्ठ अनुमान" अधिकतम का उपयोग करें, फिर अनुक्रम को JSON लंबाई तक सीमित करें। यह उदाहरण मानता है कि सबसे बड़ी सरणी में 1024 या उससे कम तत्व होंगे:
SELECT
JSON_EXTRACT(@j, CONCAT('$[', seq, ']')) AS arrayValue
FROM
seq_0_to_1024 AS sequenceTable
WHERE
sequenceTable.seq < JSON_LENGTH(@j);