Mysql条件选择一个值或其反转

时间:2012-03-23 18:40:12

标签: php mysql

我想从数据库中提取值或其反转。我想找到一种在SQL中执行if语句的方法,而不是在PHP中。

我的表格如下:id,rate,from_value,to_value

我有$ from_value和$ to_value变量,并希望提取相应的费率值或其倒数。

我想

SELECT `rate` if `from_value` = $from_value and `to_value` = $to_value

SELECT (1/`rate`) if `from_value` = $to_value AND `to_value` = $from_value 

只有一个请求。

我已经用CASE,IF搜索了很多方法,但我没有找到可行的解决方案。 我可能错过了什么。感谢

2 个答案:

答案 0 :(得分:2)

以下是使用CASE的便携式方法。如果未满足条件,我会返回NULL

SELECT 
  CASE
    WHEN `from_value` = $from_value AND `to_value` = $to_value THEN rate
    WHEN `from_value` = $to_value AND `to_value` = $from_value THEN (1.0 / rate)
    ELSE NULL
  END AS rate
FROM tbl

答案 1 :(得分:1)

更新了IF解决方案:

SELECT IF(from_value = $from_value AND to_value = $to_value, rate,
    IF(from_value = $to_value AND to_value = $from_value, (1.0 / rate), NULL)
FROM your_table