O Mysql 8 possibilita extrair parte de um array salvo em uma coluna JSON conforme mostrado abaixo:
SELECT jcol->>'$[1 to 5]' FROM `db`.`table`
onde 1 e 5 são limites do intervalo desejado de elementos na matriz.
Minha pergunta é como especificar o intervalo por números de coluna diferente. Algo assim:
SELECT jcol->>'$[table2.from to table2.to]' FROM `db`.`table`
Você deve construir o caminho JSON usando o processamento de string comum.
O caminho JSON é literal e não é avaliado como uma expressão, portanto, você deve usar
CONCAT()
para a construção do caminho.E o uso da expressão não permite usar
->>
operador, você deve usarJSON_UNQUOTE(JSON_EXTRACT())
em vez disso.