Неужели нужно работать в цикле с каждой парой через JSON_KEY и JSON_EXTRACT, и только так формировать строки таблицы?
Поскольку выбрана именно такая структура данных в JSON, то средствами SQL только так.
Попробуйте
[{"key": 1, "value: 2}, {"key": 2, "value": 4}]
Такая структура позволяет использовать JSON_TABLE. Тогда получится список (id, key, value) с одинаковыми id.
Однако, если исходя из задачи
Как строить архитектуру БД, где у юзеров много полей? требуется получить список вопросов с их ответами по user_id, то проще раскодировать JSON на стороне клиента СУБД, в самой программе, занеся в соответствующие модели, без использования JSON_TABLE.