フォームの検索で、□円〜□円まで という仕様にした場合、
検索結果として「100円〜」「〜1000円まで」「100円〜1000円まで」
という3パターンがあるかと思います。(※値は仮です)

これをMySQLのWHERE部分として検索する場合、

if(!empty($price1) && empty($price2)){ //price1のみ
$search_key = "price>='$price1'";
}elseif(empty($price1) && !empty($price2)){ //price2のみ
$search_key = "price<='$price2'";
}elseif(!empty($price1) && !empty($price2)){ //両方
$search_key = "price BETWEEN '$price1' AND '$price2' ";
}

としているのですが、ソースが長くなりすぎて困っています。
何か良い書き方はないでしょうか?