プライマリ条件が一致した場合は、セカンダリ条件が一致しても一致しなくても結果ベースをリターンし、一致する結果がない場合はセカンダリ条件でデータベースを返します。プライマリ条件のmysql selectベース
私は為替レート表を持っている、私はドルの為替レートを取得する必要があります:英ポンド、ない場合は、英ポンドの為替レートを取得する:米ドル。両方がある場合、私達のドルだけ戻す:イギリスポンド。
id origin_currency target_currency rate_from rate_to
1 1 2 1 0.75
2 2 1 1 1.34
上記のデータの場合、クエリsqlは最初のレコードのみを返す必要があります。
私が欲しいものを得るために、次のSQLを使用することができます。
select * from exchange_rate
where origin_currency = 1 and target_currency = 2
union
select * from exchange_rate
where origin_currency = 2 and target_currency = 1
limit 1
しかし、他のよりよい解決策はありますか?
どのレコードが米ドルとポンドの間でどのようにレコードされているのですか?私はペアの2つのコンバージョン率がお互いに逆転していない為替データがなぜあるのか見当たりません。このデータをどのように使用する予定ですか? –