Если ваш экземпляр sqlite был скомпилирован с включенным расширением JSON1 , это просто:
SELECT * FROM yourtable AS t
WHERE EXISTS (SELECT j.id FROM json_each(t.i18n) AS j
WHERE json_extract(j.value, '$.name') LIKE 'NAME_IN%');
Однако, небольшое изменение вашей второй идеи, вытаскивая все эти подпрограммы JSON-объекты в строках таблицы (вместо одного столбца на язык, который быстро становится громоздким по мере роста количества языков), вероятно, лучший вариант:
CREATE TABLE translations(original TEXT, language TEXT, translated TEXT
, PRIMARY KEY(original, language)) WITHOUT ROWID;
INSERT INTO translations VALUES ('name', 'ru', 'название');
-- etc.
Масштабируемый, легче проверять и обновлятьданные, позволяющие получить только нужные биты, работать лучше и т. д.