1

環境: Rails 3.2.13、開発では SQLite、本番では PostgreSQL

Active Record を使用して、DB 内のすべての名から一意の最初の文字のリストを取得しようとしています。たとえば、名前 (アレックス、ビリー、ボブ、デイブ、ジャック、ジェームズ、ジェン、サム、スティーブ、スチュワート、ビクター) がある場合、文字 (A、B、D、J、S、V) を取得しようとしています。 ) DB から。

Rails DB コンソールにアクセスして SQLite にクエリを実行し、必要なものを取得できました。

SELECT DISTINCT SUBSTR(last_name,1,1) FROM people ORDER BY last_name;

しかし、Rails 内で動作させることはできませんでした。

4

1 に答える 1

2

たとえば、使用できます

User.all.map{|u| u.name[0]}.uniq

しかし、これは記憶にあります。SQL で行う必要がある場合は、find_by_sqlを使用できます。

于 2013-04-14T03:36:39.687 に答える