14.13 プログラムによってクエリを生成する

検索用のクエリを実行時に構築したい。例えば、プログラムのユーザが検索の対象とする列と許容できる値の範囲を組み合わせて指定できるようにする。

  • 検索の条件を示す句のリストを構築し、joinによってそれらを連結してSQLのWHERE句を作成する。
if ($year_min) { push @caluses, "Year >= $year_min" }
if ($year_max) { push @clauses, "Year <= $year_max" }
if ($bedrooms_min) { push @clauses, "Beds >= $bedrooms_min" }
if ($bedrooms_max) { push @clauses, "Beds <= $bedrooms_max" }
# ...
$clause = join(" AND ", @clauses);
$sth = $dbh->prepare("SELECT beds, baths FROM Houses WHERE $clause");