# JSON\_INSERT

## Syntax

```sql
JSON_INSERT(json_doc, path, val[, path, val] ...)
```

## Description

Inserts data into a JSON document, returning the resulting document or `NULL` if either of the *json\_doc* or *path* arguments are null.

An error occurs if the JSON document is invalid, or if any of the paths are invalid or contain a `*` or `**` wildcard.

JSON\_INSERT can only insert data, while [JSON\_REPLACE](https://mariadb.com/docs/server/reference/sql-functions/special-functions/json-functions/json_replace) can only update. [JSON\_SET](https://mariadb.com/docs/server/reference/sql-functions/special-functions/json-functions/json_set) can update or insert data.

## Examples

```sql
SET @json = '{ "A": 0, "B": [1, 2]}';

SELECT JSON_INSERT(@json, '$.C', '[3, 4]');
+--------------------------------------+
| JSON_INSERT(@json, '$.C', '[3, 4]')  |
+--------------------------------------+
| { "A": 0, "B": [1, 2], "C":"[3, 4]"} |
+--------------------------------------+
```

## See Also

* [JSON video tutorial](https://www.youtube.com/watch?v=sLE7jPETp8g) covering JSON\_INSERT.

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

{% @marketo/form formId="4316" %}
