РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
50 of 711 menu

Метод unique

Метод unique класса Result возвращает итератор по строкам результата запроса. При этом для каждой строки применяется стратегия уникальности. По умолчанию используется стратегия "unique", которая фильтрует полностью совпадающие строки, оставляя только первое вхождение. Метод особенно полезен при работе с объединениями и отношениями joinedload, где могут появляться дублирующиеся строки. Метод не принимает обязательных параметров и возвращает объект итератора, который можно использовать в цикле for.

Синтаксис

result.unique()

Пример

Давайте создадим таблицу и получим результат, содержащий дублирующиеся строки, а затем применим метод unique:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article'), (1, 'article'), (2, 'article')")) res = conn.execute(text('SELECT * FROM articles')) for row in res.unique(): print(row)

Результат выполнения кода:

(1, 'article') (2, 'article')

Пример

Давайте применим метод unique к результату с дублирующимися строками и выведем количество уникальных строк:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article'), (1, 'article'), (2, 'article')")) res = conn.execute(text('SELECT * FROM articles')) unique_rows = list(res.unique()) print(len(unique_rows))

Результат выполнения кода:

2

Смотрите также

  • класс Result,
    который представляет результат выполнения запроса
  • метод all,
    который возвращает все строки результата в виде списка
  • метод first,
    который возвращает первую строку результата
  • метод scalars,
    который возвращает итератор по первым столбцам строк
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить