タグ

dbicとsqlに関するbsheepのブックマーク (2)

  • DBIx::Class で sql_maker が生成した SQL をロギングする方法

    DBIC いろいろ使って検証を続けているのですが、O/R Mapper って当たり前だけど万能じゃぁないなぁ〜とすごく思う今日この頃。正直、リレーションとか張りまくってる場合、自前で JOIN とか View 定義して書いた方が遙かに効率の良い SQL が記述できる。 複雑な SQL を表現するには、O/R Mapper だと逆に見づらいなぁ〜と思ったり。 とはいえ、単純な SQL の場合はやはり便利。コードも見た目、OO っぽくてかっこいいし。 でも、どうにも解析できなかったことが一つ。DBIC しか見てないんですが、sql_maker が生成した SQL をロギングする方法がわかりません。なんかコードを深追いしていくと、 メンドウなので、モジュールにしてなくってとってつけたような感じで実現。たとえば、Catalyst だと MyApp.pm で use UNIVERSAL::requi

  • DBIC でSELECT時に複雑な関数を使いたい(例、年齢計算) | ブログが続かないわけ

    ユーザーのプロフィールとして年齢を持ちたい場合、実際に年齢をユーザーに入れさせてしまうと、データの更新が必要になり大変です。当然、ユーザーには生年月日などを登録してもらうことになるわけですけど、そうなると、年齢を表示するときに、ちょっとした年齢計算が必要になります。うるう年のことなども考えると結構面倒なので、このあたりはSQLの関数でバシッと計算する方がラクにできます。 データベースには生年月日が登録されている場合に、年齢を取得することを考えてみましょう。SQLはちょこっと複雑になりますが、MySQLのサイトに解答が出ていますのでそのまままねてしまうことにします。 【参考】MySQL 4.1 リファレンスマニュアル :: 3.3.4.5 日付計算 birth というカラムに生年月日が入っているとすると、SQLはこんな感じになります。SELECT user_name, birth, (YEA

    DBIC でSELECT時に複雑な関数を使いたい(例、年齢計算) | ブログが続かないわけ
    bsheep
    bsheep 2009/04/07
    DBICで年齢計算
  • 1