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

Функция not_

Функция not_ создает SQL-выражение логического отрицания NOT. Первым параметром передается условие, которое нужно инвертировать. Функция возвращает объект выражения, который можно использовать в методах where, filter и других частях запроса.

Синтаксис

not_(condition)

Пример

Давайте создадим простое выражение отрицания и выведем его:

from sqlalchemy import column, not_ res = not_(column('status') == 'article') print(res)

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

"NOT (status = :status_1)"

Пример

Давайте применим not_ в запросе к таблице articles, чтобы выбрать все статьи, кроме опубликованных:

from sqlalchemy import create_engine, select, not_, column engine = create_engine('sqlite:///:memory:') stmt = select(column('title')).where( not_(column('status') == 'published') ) print(stmt)

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

SELECT title FROM articles WHERE NOT (status = :status_1)

Пример

Давайте скомбинируем not_ с функцией and_ для построения сложного условия:

from sqlalchemy import create_engine, select, not_, and_, column engine = create_engine('sqlite:///:memory:') stmt = select(column('title')).where( and_( not_(column('status') == 'draft'), column('num') > 10 ) ) print(stmt)

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

SELECT title FROM articles WHERE NOT (status = :status_1) AND num > :num_1

Пример

Давайте применим двойное отрицание not_(not_(...)) и проверим результат:

from sqlalchemy import column, not_ condition = column('status') == 'article' res = not_(not_(condition)) print(res)

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

"NOT (NOT (status = :status_1))"

Пример

Давайте применим not_ с оператором in_, чтобы исключить строки с определенными статусами:

from sqlalchemy import create_engine, select, not_, column engine = create_engine('sqlite:///:memory:') stmt = select(column('title')).where( not_(column('status').in_(['draft', 'archived'])) ) print(stmt)

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

SELECT title FROM articles WHERE status NOT IN (:status_1, :status_2)

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

  • функцию and_,
    которая объединяет условия оператором AND
  • функцию or_,
    которая объединяет условия оператором OR
  • функцию true,
    которая создает выражение TRUE
  • функцию false,
    которая создает выражение FALSE
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить