タグ

ブックマーク / bleis-tift.hatenablog.com (2)

  • 本来空行を返すSQLで1行返す - ぐるぐる~

    例えば、ユーザIDからユーザの今の状態を引っ張ってきたいときに、 SELECT state FROM Users WHERE id = @uid; とかってやると、見つからなかった場合に空行が返ってくる。 これがいやな場合はこうする*1。 SELECT state FROM Users WHERE id = @uid UNION ALL -- 見つからなかった場合、stateとして-1を返す SELECT -1 WHERE NOT EXISTS(SELECT * FROM Users WHERE id = @uid); これで、元のSQLで見つかった場合は空行がUNION ALLされ、見つからなかった場合は空行に-1がUNION ALLされるから、絶対に空行を返さない。 元のSQLでidがPKなら、常に1行返ってくることが保証されるから、ホスト言語側で場合分けをする必要がなくなる。 *1:

    本来空行を返すSQLで1行返す - ぐるぐる~
    kathew
    kathew 2016/09/08
    MySQLでできた。これは素敵。UNION ALL 以下のSELECT文でFROMが省略できなかったので、適当なテーブルを指定してLIMIT 1をして解決。
  • rebase で本番用の設定と開発用の設定を簡単に切り替える - ぐるぐる~

    rebase を使うと、番用の設定と開発用の設定を簡単に切り替えることができます。 rebase の基は rebase について - ぐるぐる〜 で説明しているので、ここまでは分かっている前提です。 例えば、ASP.NET番用と開発用の web.config が違うとします。 共用のリポジトリには開発用の web.config をコミットしてはいけません。 これをすべて手作業で行おうとすると、ついつい間違って開発用の web.config をコミットしてしまったり、ついつい間違えて開発用の web.config の内容がどこかにいっちゃったりすることがあります。 こういった事故を少なくするために、rebase を使います。 rebase --onto onto オプションを使用することで、ある地点 (ブランチ a とします) から分岐したブランチ (b とします) の分岐点から先

    rebase で本番用の設定と開発用の設定を簡単に切り替える - ぐるぐる~
  • 1