脳みそスワップアウト

揮発性なもので。おもにPHPのこととか。

SQL

SQLでのnull比較

カラムに null が入っている場合の比較は面倒なもの。 このような長ったらしいクエリになる。 col1 = val1 OR (col1 IS NULL AND val1 IS NULL) 比較データが 非null か null かによって、プログラムで生成するクエリを変えるという方法もある。 発行されるS…

行列変換

SQL

諸々の事情でテーブルが微妙な正規化になっていることがある。 よく見かける例が、ユーザ情報のテーブルに、メアド1、メアド2…といったもの。繰り返し項目が列ベースになっている困ったテーブルとの相互変換のメモ。

履歴付きデータ

SQL

社員の部署移動や、市町村の統廃合など、 あるデータに変更があったが過去の情報も残しておきたい場合によく使うパターン。pkeyを開始日+xxの複合キーにする。 終了日をNOT NULLで定義、継続中のデータはカラムの最大値を設定する。 CREATE TABLE emp ( beg…