2

I have the following result, which are JSON arrays:

["elative degree of كَبِير‎ (kabīr):", "greater; greatest"]
["elative degree of كَبِير‎ (kabīr):", "bigger, larger; biggest, largest"]
["elative degree of كَبِير‎ (kabīr):", "older, elder; oldest, eldest"]
"senior (age, rank, etc.)"

Is it possible to convert these to concatenated string? e.g. for the first row:

"elative degree of كَبِير‎ (kabīr): greater; greatest"

The JSON saved in the database column looks like:

[
    {
        "glosses": [
            "elative degree of كَبِير‎ (kabīr):",
            "greater; greatest"
        ],
        "examples": [
            {
                "text": "‏اللّٰهُ أَكْبَر‎‎",
                "type": "example",
                "roman": "allāhu ʾakbar",
                "english": "God (Allah) is greater / the greatest"
            }
        ],
        "raw_glosses": [
            "greater; greatest"
        ]
    },
    {
        "glosses": [
            "elative degree of كَبِير‎ (kabīr):",
            "bigger, larger; biggest, largest"
        ],
        "raw_glosses": [
            "bigger, larger; biggest, largest"
        ]
    },
    {
        "glosses": [
            "elative degree of كَبِير‎ (kabīr):",
            "older, elder; oldest, eldest"
        ],
        "raw_glosses": [
            "older, elder; oldest, eldest"
        ]
    },
    {
        "glosses": [
            "senior (age, rank, etc.)"
        ],
        "raw_glosses": [
            "senior (age, rank, etc.)"
        ]
    }
]
Kohjah Breese
  • 4,008
  • 6
  • 32
  • 48

2 Answers2

0

Sure, see string concatenation in python.

You can concatenate strings in python by simply:

x = 'hello there '
y = 'obi-wan kenobi'
print(x + y)

Output:

hello there obi-wan kenobi

You can extend this to your example, which I assume is a JSON array of arrays of length 2, something like:

for arr in arrays:
   print(arr[0] + arr[1])
crock
  • 423
  • 3
  • 11
0

This can be achieved with the following query:

SELECT id, GROUP_CONCAT( parts SEPARATOR ' ' )
FROM
(
    SELECT id, parts
    FROM dictionary
    JOIN JSON_TABLE( senses, "$[*].glosses"
    COLUMNS(
        id FOR ORDINALITY,
        NESTED PATH '$[*]' COLUMNS ( parts VARCHAR( 255 ) PATH '$' )
    ) ) AS glosses
    WHERE dictionaryId = 713481
) AS sub
GROUP BY id

Which returns a result like:

1   elative degree of كَبِير‎ (kabīr): greater; greatest
2   elative degree of كَبِير‎ (kabīr): bigger, larger; biggest, largest
3   elative degree of كَبِير‎ (kabīr): older, elder; oldest, eldest
4   senior (age, rank, etc.)
Kohjah Breese
  • 4,008
  • 6
  • 32
  • 48