我想从数据库中提取值或其反转。我想找到一种在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搜索了很多方法,但我没有找到可行的解决方案。 我可能错过了什么。感谢
答案 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