Я использую базу данных postgres, я работаю с кодом fastapi, где хочу найти данные из базы данных, используя указанные теги. Столбец тегов имеет тип json, а входными данными будет список Python. Я беру список Python от пользователя и пытаюсь отфильтровать данные, используя этот список из базы данных. но это не работает.
Вот запрос:
await cur.execute(f"""
SELECT *
FROM demo_data.demo_assets
WHERE ("Tags" ->> 'category') IN ({','.join(['%s'] * len(data.category))})
OR ("Tags" ->> 'domain') IN ({','.join(['%s'] * len(data.domain))})
OR ("Tags" ->> 'technology') IN ({','.join(['%s'] * len(data.technology))})
OR ("Tags" ->> 'topic') IN ({','.join(['%s'] * len(data.topic))})
OR ("Tags" ->> 'author') IN ({','.join(['%s'] * len(data.author))})
OR ("Tags" ->> 'platform') IN ({','.join(['%s'] * len(data.platform))})
OR ("Tags" ->> 'processerfamily') IN ({','.join(['%s'] * len(data.processerfamily))})
OR ("Tags" ->> 'processortype') IN ({','.join(['%s'] * len(data.processortype))})
OR ("Tags" ->> 'embeddedboard') IN ({','.join(['%s'] * len(data.embeddedboard))});
""",( data.category, data.domain, data.technology , data.topic, data.author, data.platform, data.processerfamily, data.processortype, data.embeddedboard))
results = await cur.fetchall()
Мне нужен SQL-запрос, который будет работать и извлекать правильные данные из таблицы.
Я использую базу данных postgres, я работаю с кодом fastapi, где хочу найти данные из базы данных, используя указанные теги. Столбец тегов имеет тип json, а входными данными будет список Python. Я беру список Python от пользователя и пытаюсь отфильтровать данные, используя этот список из базы данных. но это не работает. Вот запрос: [code]await cur.execute(f""" SELECT * FROM demo_data.demo_assets WHERE ("Tags" ->> 'category') IN ({','.join(['%s'] * len(data.category))}) OR ("Tags" ->> 'domain') IN ({','.join(['%s'] * len(data.domain))}) OR ("Tags" ->> 'technology') IN ({','.join(['%s'] * len(data.technology))}) OR ("Tags" ->> 'topic') IN ({','.join(['%s'] * len(data.topic))}) OR ("Tags" ->> 'author') IN ({','.join(['%s'] * len(data.author))}) OR ("Tags" ->> 'platform') IN ({','.join(['%s'] * len(data.platform))}) OR ("Tags" ->> 'processerfamily') IN ({','.join(['%s'] * len(data.processerfamily))}) OR ("Tags" ->> 'processortype') IN ({','.join(['%s'] * len(data.processortype))}) OR ("Tags" ->> 'embeddedboard') IN ({','.join(['%s'] * len(data.embeddedboard))}); """,( data.category, data.domain, data.technology , data.topic, data.author, data.platform, data.processerfamily, data.processortype, data.embeddedboard))
results = await cur.fetchall() [/code] Мне нужен SQL-запрос, который будет работать и извлекать правильные данные из таблицы.