/ 最近 .rdf 追記 編集 設定 本棚

脳log[20130201]



2013年02月01日 (金) パラメータの数が可変(※省略が可能という意味)の時のプリペアードステイトメント。SQLiteだと渡さなかったパラメータに対応する(名前付き)プレースホルダは NULLになる(※ライブラリの計らいかもしれない)。省略可能なパラメータが絞り込み条件(WHERE clause)のひとつであるとして、NULLとの比較が常に失敗するのに任せる場合もあれば、反対に NULLにワイルドカードとして振る舞ってもらう場合もある。後者はこんな感じ。「SELECT * FROM Book WHERE (:publisher ISNULL OR Publisher LIKE :publisher) AND (:label ISNULL OR Label LIKE :label) AND (:binding ISNULL OR Binding LIKE :binding) AND (:ccode ISNULL OR CCode LIKE :ccode) AND (:publicationdate ISNULL OR PublicationDate LIKE :publicationdate;」こういうの(LIKEの乱用)を指して Poorman's Search Engineと言ってるんじゃないかな>『SQLアンチパターン(www.oreilly.co.jp)』さっき挙げた SQL(の一部)はこういう使われ方をしています>「http://vvvvvv.sakura.ne.jp/ds14050/buch/browse/CCode/C3___