1
我目前正試圖將一個爲MySQL數據庫設計的程序轉移到MS-SQL數據庫上,並且遇到了一些麻煩。我發現默認情況下,MySQL沒有區分大小寫,因爲MS-SQL具有區分大小寫。這導致了與下面列出的代碼類似的一些問題。爲MS-SQL創建不區分大小寫的SQLAlchemy查詢
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
感謝您的幫助,它完美地解決了MS-SQL的問題,但它確實造成了一個小問題。由於「未知整理」,添加整理功能會破壞與MySQL的兼容性。你有任何解決這兩個問題的建議嗎? – JBolton
恐怕整理字符串是特定於RDBMS的,所以您需要在MySQL中使用不同的內容 - 請參閱文檔[here](https://dev.mysql.com/doc/refman/5.5/en/charset- charsets.html) –