2009-05-11 Mon
■ 今日の del.icio.us (2009-05-11)
■ Sequel で LIKE
tag: [Ruby]
Sequel で LIKE を使いたい場合,
DB[:foo].filter(:bar.like("baz"))
とすればいいんだけど,この like は case sensitive なので,
大文字・小文字を区別したくない場合は,
DB[:foo].filter(:bar.ilike("baz"))
と,ilike を使う.
また,SQL injection 対策は Sequel がやってくれるので,
特に考えなくていいっぽい.
word = "' or 'a' = 'a' '" d = DB[:timeline].filter(:status_text.like("#{word}"))
は以下のような SQL になる
#<Sequel::MySQL::Dataset: "SELECT * FROM `timeline` WHERE (`status_text` LIKE BINARY '\\' or \\'a\\' = \\'a\\' \\'')">