Функция JSONEXTRACT в MySQL используется для извлечения значения из JSON-документа. Для вывода всех значений из JSON-документа, передайте функции JSONEXTRACT только путь к элементу.
JSON_EXTRACT принимает два аргумента: JSON-документ и путь к элементу. Путь к элементу представляет собой последовательность ключей, разделенных точкой. Например, если у вас есть следующий JSON-документ:
{
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York"
}
}
И вы хотите вывести все значения из поля "address", путь к элементу будет "address". Ваш запрос будет выглядеть так:
SELECT JSONEXTRACT(jsoncolumn, '$.address') FROM table_name;
где jsoncolumn - это имя столбца, содержащего JSON-документ, а tablename - имя таблицы, в которой находится этот столбец.
Если вы хотите вывести все значения из JSON-документа, передайте функции JSON_EXTRACT путь к корневому элементу JSON-документа - "$". Ваш запрос будет выглядеть так:
SELECT JSONEXTRACT(jsoncolumn, '$') FROM table_name;
Этот запрос вернет весь JSON-документ.
Кроме того, в MySQL 5.7.8 и более поздних версиях появилась функция JSONTABLE, которая позволяет работать с JSON-документами в более удобной форме. JSONTABLE позволяет преобразовать JSON-документ в таблицу и осуществлять выборку значений из нее. Пример использования JSON_TABLE для вывода всех значений из JSON-документа:
SELECT FROM JSONTABLE(jsoncolumn, '$.' COLUMNS (
key_val FOR ORDINALITY,
value_val JSON PATH '$'
)) AS jt;
где jsoncolumn - это имя столбца, содержащего JSON-документ, а jt - это псевдоним для таблицы, созданной с помощью JSONTABLE.
Этот запрос вернет все значения из JSON-документа в двух столбцах: keyval и valueval.
Таким образом, для вывода всех значений из JSON-документа в MySQL можно использовать функцию JSONEXTRACT с путем к корневому элементу JSON-документа или использовать функцию JSONTABLE для преобразования JSON-документа в таблицу и осуществления выборки значений из нее.