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

Метод endswith

Метод endswith класса ColumnElement создает SQL-выражение для проверки того, заканчивается ли строковое значение столбца заданной подстрокой. Первым параметром метод принимает подстроку для поиска. Вторым необязательным параметром можно передать флаг autoescape для экранирования спецсимволов шаблона % и _.

Синтаксис

ColumnElement.endswith(other, [autoescape])

Пример

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

from sqlalchemy import create_engine, select, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] = mapped_column(String) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: session.add_all([ Article(title='Learn SQL'), Article(title='Learn Python'), Article(title='Advanced SQL'), ]) session.commit() stmt = select(Article.title).where(Article.title.endswith('SQL')) res = session.execute(stmt).scalars().all() print(res)

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

['Learn SQL', 'Advanced SQL']

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

SELECT articles.title FROM articles WHERE (articles.title LIKE '%' || :title_1)

Пример

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

from sqlalchemy import create_engine, select, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] = mapped_column(String) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: session.add_all([ Article(title='Learn Python'), Article(title='Learn SQL'), Article(title='Python Tips'), ]) session.commit() stmt = select(Article.title).where(Article.title.endswith('thon')) res = session.execute(stmt).scalars().all() print(res)

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

['Learn Python']

Пример

Давайте используем параметр autoescape, чтобы экранировать символ % в подстроке:

from sqlalchemy import create_engine, select, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] = mapped_column(String) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: session.add_all([ Article(title='100% SQL'), Article(title='Learn SQL'), ]) session.commit() stmt = select(Article.title).where( Article.title.endswith('100%', autoescape=True) ) res = session.execute(stmt).scalars().all() print(res)

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

['100% SQL']

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

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