Я использую базу данных 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-запрос, который будет работать и извлекать правильные данные из таблицы.