Комната Android использует сохраненный список / массив целых чисел для выполнения sql "IN" запроса - PullRequest
0 голосов
/ 11 июля 2019

Привет, я работаю с комнатой Android mvvm, у меня есть этот список целых чисел, который уже работает и сохранен в таблице на рисунке 1, эта таблица будет использоваться в качестве справочной таблицы для выборки данных в data_collection_table рисунок 2.

Рисунок 1 : refence_table

ключ = строка, сгенерированная в приложении

значение = будет использоваться массив / список идентификаторовзапросить любые изменения значений массива.

 ___________________________
|_key____|___value__________|
| key_1  | [1234,2323,235]  |
| key_2  | [1263,1233,2323] |
-----------------------------

Рисунок 2 : data_collection_table

 ___________________________
|_id____|___data entities___|
| 1233  |   event one       |
| 2323  |   event two       |
|and so on..                |
 ---------------------------

Проблема :

  1. При извлечении данных с использованием sql "IN" я не смог получить никаких данных, и при выполнении не было обнаружено никаких ошибок.

Код, который я написал для извлечения данных с использованием комнатных данных.Пример кода возврата 0 данных

     @Query("SELECT * FROM data_collection_table WHERE id IN  (SELECT value 
    FROM refence_table WHERE `key` LIKE :key)")
       LiveData<List<T>> getDataList(String key);
Как запросить длину значения в refence_table, используя его ключ.
     @Query("SELECT COUNT(value) FROM tbl_reference WHERE `key` LIKE :key")
    int getCount(String key);

Я уже пытался использовать LENGTH (значение) и COUNT (значение) в sql, также не работает.

...