MW211 EXIT

devlog
PostgreSQL/0を除く最小値(2)
2012年05月30日
ということで、NULLを含む列についての0を除く最小値を求める方法。
┌──────────────────────────────────────┐
│SELECT CASE                                                                 │
│           WHEN MIN(列) IS NULL THEN NULL                                   │
│           ELSE                                                             │
│               COALESCE(MIN(CASE                                            │
│                                WHEN 列 = 0 THEN NULL                       │
│                                ELSE             列                         │
│                            END), 0)                                        │
│       END AS 列                                                            │
│    FROM 表                                                                 │
│    GROUP BY キー                                                           │
└──────────────────────────────────────┘
ちと条件分岐が強引か。。。

すべてNULLならNULL、1以上を一つでも含んでいればその最小値、
さもなくば0となる。(なんか初心者のような条件分岐の説明だなぁ)

とにかくやりたいことは満たせるはず。

ちなみに、すべてNULLを判定する式は一般的にはCOUNT()を使うのが自然かも。
┌──────────────────────────────────────┐
│SELECT CASE                                                                 │
│           WHEN COUNT(列) = 0 THEN NULL                                     │
│           ELSE                                                             │
│               COALESCE(MIN(CASE                                            │
│                                WHEN 列 = 0 THEN NULL                       │
│                                ELSE             列                         │
│                            END), 0)                                        │
│       END AS 列                                                            │
│    FROM 表                                                                 │
│    GROUP BY キー                                                           │
└──────────────────────────────────────┘
ま、意図するところを伝えるのなら前出のMIN()の方がわかりやすいかな。
分類:PostgreSQL
PostgreSQL/0を除く最小値(1)
2012年05月29日
0を除く最小値を求める方法。
┌──────────────────────────────────────┐
│SELECT COALESCE(MIN(CASE                                                    │
│                        WHEN 列 = 0 THEN NULL                               │
│                        ELSE             列                                 │
│                    END), 0) AS 列                                          │
│    FROM 表                                                                 │
│    GROUP BY キー                                                           │
└──────────────────────────────────────┘
ただし、NOT NULL制約の列にしか使えない。。。
分類:PostgreSQL
SQL/NULLと条件式
2012年05月28日
列がNULLだった場合、以下には該当しない。
┌──────────────────────────────────────┐
│SELECT * FROM 表 WHERE 列 > 0;                                              │
└──────────────────────────────────────┘
これはわかる気がする。

で、ほぼ反対の以下にも該当しない。
┌──────────────────────────────────────┐
│SELECT * FROM 表 WHERE 列 < 1;                                              │
└──────────────────────────────────────┘
つまり、0ではない。これもわかる。

そして、最初の正反対である以下にも該当しない。
┌──────────────────────────────────────┐
│SELECT * FROM 表 WHERE NOT(列 > 0);                                         │
└──────────────────────────────────────┘
もう、何にも該当しないみたい。

つまり、これでも該当なし。
┌──────────────────────────────────────┐
│SELECT * FROM 表 WHERE (列 > 0) OR  (NOT(列 > 0));                          │
└──────────────────────────────────────┘

NULLについては、WHERE句に列を指定した時点で負けみたいだね。
分類:SQL
PostgreSQL/関数実行
2012年05月27日
pgAdminとかでSQL文を発行して関数を実行する方法
┌──────────────────────────────────────┐
│SELECT 関数();                                                              │
└──────────────────────────────────────┘
え?SELECT?
分類:PostgreSQL
PHP/private宣言忘れ
2012年05月23日
┌──────────────────────────────────────┐
│class クラス {                                                              │
│  private $変数;                                                            │
│  public function メソッド() {                                              │
│    $this->変数 = '値';                                                     │
│  }                                                                         │
│}                                                                           │
└──────────────────────────────────────┘
「$this->変数」の場合、「public」や「private」が宣言されていないと
エラー(Notice)になる…、と思っていたのだが、参照(echoとか)は確かにエラーとなる。
しかし、代入する分にはエラーとならない。
┌──────────────────────────────────────┐
│class クラス {                                                              │
│//private $変数;                                                            │
│  public function メソッド() {                                              │
│    $this->変数 = '値';                                                     │
│  }                                                                         │
│}                                                                           │
└──────────────────────────────────────┘
しかも、代入して以降は参照もできてしまう。
なんと、外部からも参照できてしまうのだ。
つまり、下記のようにpublic宣言したのと同じような動きとなるわけだ。
┌──────────────────────────────────────┐
│class クラス {                                                              │
│  public $変数;                                                             │
│  public function メソッド() {                                              │
│    $this->変数 = '値';                                                     │
│  }                                                                         │
│}                                                                           │
└──────────────────────────────────────┘
てっきり、エラー(Notice)で警告してくれるものだとばかり思っていたから
かなり意外だった(気をつけなければ)。
分類:PHP
(無題)
2012年05月22日
Go Fu Fu No Hi
PostgreSQL/地域の設定
2012年05月21日
「CREATE DATABASE」を行う時、以下を指定することにより地域を設定できる。
┌──────┬─────────┐
│LC_COLLATE  │並替順            │
├──────┼─────────┤
│LC_CTYPE    │大文字小文字の区別│
├──────┼─────────┤
│LC_MESSAGES │メッセージ        │
├──────┼─────────┤
│LC_MONETARY │通貨書式          │
├──────┼─────────┤
│LC_NUMERIC  │数字書式          │
├──────┼─────────┤
│LC_TIME     │日時書式          │
└──────┴─────────┘
「C」を設定すると、地域を設定しないのと同等になる。

「ja」(日本語)とかを設定すると、並替など、
その言語(日本語)に特化した機能となるが、その分遅かったり、
他言語には影響がなかったりする。

とりあえず「C」(設定なし)としておく方が無難か。
分類:PostgreSQL
jQuery/ツリー開閉機能
2012年05月20日
HTML側で以下のような感じで、プラス・マイナスアイコン(img)と、
開閉領域(div)を定義してあげる。
┌──────────────────────────────────────┐
│└<img id="T1" src="minus.jpg"/>親<br/><div id="_T1" style="display:block;">│
│  └子<br/></div>                                                           │
└──────────────────────────────────────┘

そして、jQuery側では以下のようにtoggleメソッドを定義してあげればよい。
┌──────────────────────────────────────┐
│$('img').toggle(                                                            │
│     function() {                                                           │
│         $(this).attr('src', 'minus.jpg');                                  │
│         $('#_' + $(this).attr('id')).css('display','block');               │
│     },                                                                     │
│     function() {                                                           │
│         $(this).attr('src', 'plus.jpg');                                   │
│         $('#_' + $(this).attr('id')).css('display','none');                │
│     }                                                                      │
│);                                                                          │
└──────────────────────────────────────┘

ただ、toggleメソッドは頭が固くて初期表示時に開閉が混在していると役に立たない。
ってことで、以下のようにif文で地道にやるのも全然悪くない。
┌──────────────────────────────────────┐
│$('img').click(function() {                                                 │
│    if ($(this).attr('src') == 'plus.jpg') {                                │
│         $(this).attr('src', 'minus.jpg');                                  │
│         $('#_' + $(this).attr('id')).css('display','block');               │
│    } else {                                                                │
│         $(this).attr('src', 'plus.jpg');                                   │
│         $('#_' + $(this).attr('id')).css('display','none');                │
│    }                                                                       │
│});                                                                         │
└──────────────────────────────────────┘
分類:jQuery
セッション情報の盗み見を試みたが…
2012年05月19日
┌──────────────────────────────────────┐
│session_start();                                                            │
│var_dump($_SESSION);                                                        │
└──────────────────────────────────────┘
上記のようなphpソースを実行させれば、セッション情報が表示できるはず。
だったら、これを自分のところに送信させれば悪用できるんじゃない?と思った。

例えば、どこかのサイトにログインしてセッション情報が生成されていた時に
これを使ってそのセッション情報を取得すれば
そのサイトになりすましでログインして…みたいなことができてしまうのでは…
というか、そんなことされたら怖いなと思った。

でも、よく考えてみると、ここで表示されるセッション情報の内容は
これを仕込んだサーバのセッション情報であり、
他サーバのセッション情報でなく、それは取得できないのであった。
めでたし、めでたし
HTML/文字列の表示の不思議
2012年05月18日
なんだかわからんが、「-」が混じってるとそこで改行されしまうんだよね。

音節の区切りだからなんだろうけど…。

他にこういう文字ってないのかな?

対処法(改行させない方法)としては
「div {white-space:nowrap;}」みたいなスタイルにするとからしい。
分類:HTML
前へ 1 2 3 次へ