#python #postgresql
Вопрос:
У меня есть разделенная запятая string
, в Python
которой я хотел бы сравнить со text
столбцом в Postgres. Колонка выглядит так:
data {"ids":[id1]} {"ids":[id2,id3,id4]} {"ids":[id5,id6,id7]}
Разделенные запятыми string
в python выглядят так:
id1,id2,id3..
Все ids
это integer
-ценности. Я хотел бы взять все ids
разделенные запятыми string
и сопоставить их со data
столбцом в Postgres и вернуть соответствующие результаты. Таблица Postgres очень большая, поэтому я не могу загрузить ее в память и выполнить сравнение строк. data
Колонка есть text
.
Я мог бы легко сопоставить, если бы у меня было только 1 id
совпадение с помощью like
оператора. Но я не знаю, как сопоставить кучу значений, разделенных запятыми.
Ожидаемый набор результатов в примере является:
data {"ids":[id1]} {"ids":[id2,id3,id4]}
Как мне это сделать?
Комментарии:
1. Каков будет результат вашего примера?
2. Обновил ожидаемый результат в вопросе.
3. Таким образом, » совпадение » означает, что для каждого элемента в вашей строке мы нашли запись в БД, которая его содержит. Правильно ли я это сделал?,
4. Правильный. Я также могу сделать это с помощью
similar to
оператора. Но это отнимает много времени. Поэтому мне интересно, есть ли более быстрый способ?