所以,我試圖從DataMapper命令我的結果,而不考慮大小寫。現在,我執行類似Item.all(:order => :artist)
的操作。我試着做Item.all(:order => "LOWER(artist)")
,但我只是得到一個錯誤,LOWER(artist)
不是Item
的財產。 DataMapper有沒有一種好的方法?如何在DataMapper中使用Postgres進行不區分大小寫的排序?
3
A
回答
2
DataMapper可能不支持排序子句中的原始sql。 https://github.com/datamapper/dm-core/pull/11有更多信息。如果您真的需要它,您可以將該補丁應用於您的DataMapper版本。
即使DataMapper確實支持它,您還需要一個較低(藝術家)的索引以使訂購效率更高。
你可能想要做的是爲藝術家列使用postgresql citext數據類型。它提供了不區分大小寫的搜索和排序。 http://www.postgresql.org/docs/9.1/static/citext.html
如果你很幸運能夠使用postgresql 9.1,下面應該很好。如果您使用的是< 9.1,則需要以不同的方式加載citext模塊,postgresql文檔應該會告訴您如何。
create extension citext;
create table test (
name citext
);
insert into test values ('a'), ('b'), ('X'), ('m'), ('D');
select * from test order by name;
name
------
a
b
D
m
X
0
我實際上最終使用了dm-ar-finders。它增加了諸如Item.find_by_sql("SELECT * FROM items ORDER BY LOWER(artist)")
之類的東西。只要確保你添加一個索引,無論哪列改變,性能。
相關問題
- 1. 如何使用jqGrid進行不區分大小寫的排序?
- 2. 使用Rails進行Postgres不區分大小寫的搜索
- 3. 使用js數組進行不區分大小寫排序
- 4. 對combobox中的數據進行排序不區分大小寫
- 5. 使Oracle排序不區分大小寫?
- 6. 如何使用dplyr進行不區分大小寫的分組?
- 7. 如何使用jQuery對datatable alphabitecal和不區分大小寫進行排序?
- 8. NSMutableArray的排序 - 不區分大小寫
- 9. SQL2:不區分大小寫的排序
- 10. 對字符串數組進行不區分大小寫排序
- 11. 如何在java中進行不區分大小寫的查詢?
- 12. AWS Redshift - 不區分大小寫排序
- 13. 在Angulargrid中自定義排序 - 排序不區分大小寫
- 14. 如何以不區分大小寫的方式對DataView進行排序?
- 15. 如何使用不區分大小寫排序的數據庫對外鍵區分大小寫?
- 16. 在Datamapper中不區分大小寫的查詢
- 17. 如何使此排序不區分大小寫?
- 18. Postgres不區分大小寫的排除約束
- 19. 如何在Kendo樹視圖中執行不區分大小寫的排序?
- 20. c#區分大小寫的ASCII排序?
- 21. Lucene如何區分大小寫和不區分大小寫
- 22. 如何在不區分大小寫的順序中對Eclipse中的導入語句進行排序?
- 23. 使區分大小寫不敏感的區分大小寫表
- 24. 在oracle中按不區分大小寫的順序排列
- 25. Emacs功能不區分大小寫的排序行?
- 26. 使用Amazon Dynamo DB進行不區分大小寫的查詢
- 27. 使用Hibernate進行不區分大小寫的搜索
- 28. 使用Hibernate-Search進行不區分大小寫的索引?
- 29. 使用will_paginate進行不區分大小寫的搜索
- 30. Flex AdavcedDagagrid排序區分大小寫