我目前正在尝试将专为 MySQL 数据库设计的程序转移到 MS-SQL 数据库上,但遇到了一些麻烦。我发现 MySQL 默认情况下不像 MS-SQL 那样区分大小写。这导致类似于下面列出的代码出现一些问题。
class Employee(Base):
__tablename__ = "Employees"
Id = Column(Integer(unsigned=True),
primary_key=True, nullable=False, unique=True)
DisplayName = Column(String(64),
nullable=False)
#more columns
def get_employees(sql_session, param, columns=None, partial_match=True):
if not columns:
columns = [Employee.Id, Employee.DisplayName]
clauses = []
if partial_match:
clauses.append(Employee.DisplayName.startswith(param))
whereclause = and_(*clauses)
stmt = select(columns, whereclause)
return sql_session.execute(stmt)
我知道 SQL 关键字 COLLATE,但我不确定如何实现它,或者它是否是在这种情况下使用的最佳选择。对于使用 SQLAlchemy 创建不区分大小写的 LIKE 查询,您会给出什么建议?
- Python 2.7.7
- SQLAlchemy 0.7.7