Еще один вопрос новичка ..
Допустим, у меня есть пользовательская таблица в декларативном режиме:
class User(Base):
__tablename__ = 'user'
id = Column(u'id', Integer(), primary_key=True)
name = Column(u'name', String(50))
Когда у меня есть список идентификаторов пользователей, я получаю их из базы данных с помощью:
user_ids = [1, 2, 3, 4, 5]
users = Session.query(User).filter(User.id.in_(user_ids)).all()
Мне не нравится использовать in_
, потому что я думаю, что узнал, что он имеет плохую производительность на проиндексированных полях
(это правда / ложь?).
В любом случае, есть ли лучший способ выполнить этот запрос?
Спасибо!
РЕДАКТИРОВАТЬ: я использую MySQL
Как бы я написал этот запрос, используя ИЛИ с sqlalchemy?
РЕДАКТИРОВАТЬ: получил:
from sqlalchemy.sql.expression import or_
user_ids = [1, 2, 3, 4, 5]
clauses = or_( *[User.user_id==x for x in users] )
users = Session.query(User).filter(clauses).all()