Seo tools

Neo Inspiration

  • Search

    • About Me

      • inspi 改め
        jakk@webアーキテクト(自称)
        php,javascript,seoなど
        得意技は extract();



  • Categories

  • Ranking

  • Comments

  • Others


    • track feed   |
  • MYSQL で IF(CASE)文が便利

    PLでしかできないとおもっていたんですが、
    実はMYSQLでも CASE って使えるんですね。

    これはめちゃくちゃ便利なので、メモメモ。

    例えば

    tableA に 性別カラム (clmA) (1=男,2=女,3=その他)があって

    男のレコードの数
    女のレコードの数
    その他のレコードの数

    を1発のSQLで出すことができます。

    SELECT
    count( CASE WHEN clmA=1 THEN 1 ELSE null END ) as “Men”
    count( CASE WHEN clmA=2 THEN 1 ELSE null END ) as “Women”
    count( CASE WHEN clmA=3 THEN 1 ELSE null END ) as “Others”
    FROM tableA

    ほかにも

    CASE WHEN 1>0 THEN “true” ELSE “false”

    みたいな書き方も可能だし、
    もちろんネストも可能。

    しかも意外と処理も早いので、
    わりとヘビーなDBじゃない限り実用に耐えうるきがする。

    他にも色々と使えそうな演算子があったので、
    一度きちんと勉強したほうがよさそうだなー


    2 Responses to “MYSQL で IF(CASE)文が便利”

    1. tomo Says:

      CASEって便利ですよねー
      SQL-92に入っているので主要なデータベースなら使えるのでは?

    2. Jakk Says:

      コメントありがとうございます。

      >SQL-92に入っているので主要なデータベースなら使えるのでは?
      どうもDB関係うとくてあれだったんですが、
      SQLの概念というかポジションというか
      そういうのがわかっていないと
      こういう理解はできないのかもしれないですねー

      ちゃんと勉強します(・w・

    Leave a Reply

    2009/01/07 02:08:17