Как выбрать из MySQL, используя массив JSON из другой таблицы - PullRequest
0 голосов
/ 22 февраля 2019

Мне нужно выбрать все элементы из таблицы table1 из поля table2.properties, которое является данными JSON.

Пример данных:

Table1:
--------
 id
--------
 1
 2
 3
--------
Table2:
-------------------------------------
 id  | properties
-------------------------------------
 11  | {"ids": ["1"]}
 12  | {"ids": ["1","3"]}
 13  | {"ids": ["2","3"]}
-------------------------------------

Я могу получить идентификаторы в виде массива этимзапрос

> select JSON_EXTRACT(properties, '$.ids') from `table2` where id=11;
+-------------------------------------+
| JSON_EXTRACT(properties, '$.ids')   |
+-------------------------------------+
| ["1"]                               |
+-------------------------------------+

Но когда я пытаюсь получить table1, он не работает

> select * from `table1` where id in (
  select JSON_EXTRACT(properties, '$.ids') from `table2` where id=11
);
[empty result]
...