SQlite json1 поиск тегов в массиве JSON

Я пытаюсь сделать простой запрос в SQLite, но у меня есть некоторые проблемы, вот пример запроса:

SELECT 
    files.id as id, files.hash as hash, files.name as name, 
    files.description as description, files.date as date, 
    files.tags as tags, files.languages as languages 
FROM 
    files, json_each(files.tags) as Ts
  , json_each(files.languages) as Ls 
WHERE Ts.value = '333' 
GROUP BY files.id

files.tags а также files.languages оба поля JSON с массивом JSON внутри, как ["aaa","bbb","ccc"]

Этот запрос работает, но у меня есть 2 проблемы:

  1. Мне нужно сделать group by потому что строки дублируются, когда я устанавливаю json_each() каждая строка дублируется в json_each() (один для тегов и другой для языков), поэтому я думаю, что я что-то не так делаю.

  2. Если в строке нет тегов (или языков) и в поиске я не установил WHERE, результат не показывает строки без тегов / языков, в том числе, если я установил в столбце строки тегов "[]" чтобы установить пустой, мне нужно, если у меня нет, где появляются строки без тегов или языков

╔════╦══════════════╦══════════╦════════════════╦═════════╦═══════════════╦══════════════════╗
║ id ║     hash     ║   name   ║   description  ║   date  ║      tags     ║    languages     ║
╠════╬══════════════╬══════════╣════════════════╣═════════╣═══════════════╣══════════════════╣
║INT ║     TEXT     ║   TEXT   ║     TEXT       ║  NUMBER ║     JSON      ║       JSON       ║
║  2 ║ b2b22b2b2bb2 ║ two test ║  lorem ipsum b ║ 1233123 ║ ["d","e","f"] ║ ["ko","en","tk"] ║
║  3 ║ asdasdasdsad ║ 333 test ║  lorem ipsum c ║ 1233123 ║ ["a","d","c"] ║ ["es","de","fr"] ║
║  4 ║ 4s342s423424 ║ 444 test ║  lorem ipsum d ║ 1233123 ║ ["a","b","g"] ║ ["es","pt","fr"] ║
╚════╩══════════════╩══════════╩════════════════╩═════════╩═══════════════╩══════════════════╝

Желание данных, что-то вроде примера:

SELECT * 
FROM files 
WHERE (tags = 'a' OR tags = 'b') 
 AND (languages = 'es' OR languages = 'pt') 

или если я позвоню SELECT * FROM files покажи мне все, включая строки без тегов / языков

0 ответов

Другие вопросы по тегам