3
Мне нужно сделать некоторые запросы к регистру, чувствительным к mysql db с sqlalchemy , как я могу сделать запрос чувствительным к регистру с sqlalchemy. благодарит заранее.case-query с sqlalchemy
Мне нужно сделать некоторые запросы к регистру, чувствительным к mysql db с sqlalchemy , как я могу сделать запрос чувствительным к регистру с sqlalchemy. благодарит заранее.case-query с sqlalchemy
Вам нужно будет указать, что сортировка столбцов (столбцов) будет чувствительна к регистру.
Поддержка SQLAlchemy диалекта MySQL allows several column-types to accept a collation
kwarg.
Ниже приведен пример того, как указать сортировку столбца при создании таблицы.
import sqlalchemy as sa
sa.__version__
# -> '0.7.7'
engine = sa.create_engine('mysql+mysqldb://uname:[email protected]/your_db',
pool_recycle=3600)
metadata = sa.MetaData()
some_table = sa.Table('some_table', metadata,
sa.Column('id', sa.Integer, primary_key=True),
sa.Column('some_column',
# specify case-sensitive collation
sa.dialects.mysql.VARCHAR(100, collation='utf8_bin')),
)
metadata.create_all(engine)
conn = engine.connect()
conn.execute('''INSERT INTO some_table (some_column)
VALUES (%s);''', ('foo',))
conn.execute('''INSERT INTO some_table (some_column)
VALUES (%s);''', ('FOO',))
conn.execute('SELECT * FROM some_table;').fetchall()
# -> [(1L, 'foo'), (2L, 'FOO')]
conn.execute('''SELECT *
FROM some_table
WHERE some_column LIKE %s;''', ('foo%',)).fetchall()
# -> [(1L, 'foo')]
conn.execute('''SELECT *
FROM some_table
WHERE some_column LIKE %s;''', ('FOO%',)).fetchall()
# -> [(2L, 'FOO')]
https://groups.google.com/forum/?fromgroups#!topic/sqlalchemy/OyUwclkPzxE –