Как предварительно сформировать регистрозависимое сопоставление с помощью SQLAlchemy для строк, допускающих обнуляемость? - PullRequest
0 голосов
/ 16 мая 2019

Мне нужно запросить базу данных с учетом регистра.

Я не могу найти решение для сравнения пустых строк.

func.binary

не нуль -> работает

db.session.query(Table).filter(Table.city == func.binary("City Name")).all()

Возвращает все записи, где city = "City Name"

ноль -> не работает

db.session.query(Table).filter(Table.city == func.binary(None)).all()

Должен возвращать все записи, где city is null, но city тип поля базы данных - {NoneType} Nonefunc.binary(None) тип {Function} binary(NULL)

или

не нуль -> работает

db.session.query(Table).filter(Table.city.ilike("City Name")).all()

Возвращает все записи, где city = "City Name"

ноль-> не работает

db.session.query(Table).filter(Table.city.ilike(None)).all()

Возвращает ошибку: {ArgumentError}Only '=', '!=', 'is_()', 'isnot()', 'is_distinct_from()', 'isnot_distinct_from()' operators can be used with None/True/False

РАЗРЕШЕНО :

class Table():
city =Column(String(length=50, collation="utf8mb4_bin"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...