使用Django 1.3x。我可以輕鬆地重載Django ORM'iexact'來使用LOWER()而不是UPPER()嗎?
我目前有一個非常非常非常活躍的Postgres數據集,它有一個重要的列索引爲lower(column)
。
我剛剛意識到一些常見的查詢很慢,因爲當我使用iexact
來匹配該字段時,Django ORM正在爲該字段生成一個查詢blah = UPPER(column)
。
是否有一種簡單的方法來強制ORM使用lower()
來替代,還是我需要爲此刪除原始SQL?
謝謝!
:這裏[您的意見方的問題是有一個很好的理由,忽視,已經對指數使用upper()
,而不是lower()
?]
克里斯,感謝您的回答!我也遇到過這些門票,但沒有看到爲什麼突然變成'upper()'的重要討論。您對Oracle位的洞察力是我聽到的最多。這是一個簡單的查詢,所以我想我會在這裏使用'.raw()'。非常感謝! –