MySQL REGEX для преобразования json в разделенные запятыми ключи для использования в WHERE IN - PullRequest
0 голосов
/ 27 июня 2019

У меня есть несколько столбцов VARCHAR, которые содержат содержимое JSON по отношению к другим строкам той же таблицы, и мне нужно преобразовать это в разделенные запятыми ключи, чтобы использовать WHERE IN.

Пример содержимого столбца:

[{"manuel":"Manuel Fernandez"},{"marta":"Marta Flores"}]

И что мне нужно, это:

manuel,marta

Это часть более крупного запроса, в котором это преобразование должно применяться к нескольким столбцам, и поэтому я думаю, что лучшее решение - это сделать, используя Mysql REGEX

Обновление 1

Mysql версия 5.7.25

1 Ответ

1 голос
/ 27 июня 2019

Вам необходимо удалить из строки [, ], {" и все от ":" до следующего }.

regexp_replace(columnName, '\\[|\\]|\\{"|":"[^}]*\\}', '')

Вам нужна MySQL 8.0, чтобы получить встроенную функцию REGEXP_REPLACE().Если вы используете более старую версию, см. Как заменить регулярное выражение в MySQL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...