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

Метод is_

Метод is_ класса ColumnElement создает SQL-выражение для проверки на идентичность. Чаще всего применяется для сравнения значения столбца с NULL, а также с булевыми значениями True и False. Первым параметром метод принимает значение, с которым сравнивается элемент. Метод возвращает объект BinaryExpression, который можно использовать в конструкции where.

Синтаксис

column.is_(other)

Пример

Давайте создадим таблицу articles и выберем строки, у которых столбец text равен NULL:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, select engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), ) metadata.create_all(engine) stmt = select(articles.c.title).where(articles.c.text.is_(None)) print(stmt)

Итоговый SQL запрос:

SELECT articles.title FROM articles WHERE articles.text IS NULL

Пример

Давайте сравним булевый столбец status со значением True:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Boolean, select engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('status', Boolean), ) metadata.create_all(engine) stmt = select(articles.c.title).where(articles.c.status.is_(True)) print(stmt)

Итоговый SQL запрос:

SELECT articles.title FROM articles WHERE articles.status IS 1

Пример

Давайте выполним запрос к базе и получим список заголовков, у которых текст не задан:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, select engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), ) metadata.create_all(engine) with engine.begin() as conn: conn.execute(articles.insert(), [ {'title': 'article 1', 'text': 'sqlite'}, {'title': 'article 2', 'text': None}, {'title': 'article 3', 'text': None}, ]) stmt = select(articles.c.title).where(articles.c.text.is_(None)) with engine.connect() as conn: res = conn.execute(stmt).scalars().all() print(res)

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

['article 2', 'article 3']

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

  • класс ColumnElement,
    который представляет элемент столбца
  • метод is_not,
    который проверяет значение на неравенство с NULL
  • метод in_,
    который проверяет вхождение значения в список
  • метод is_distinct_from,
    который сравнивает значения с учетом NULL
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить