我想從一個數據庫表中選擇一個值或其反向值,只有一個SQL請求。Mysql選擇一個字段值或其相反(雙)
我previoulsy發佈了一個問題,但現在我有更多的規格,這改變了問題。
我的表中的字段有:id, rate, from_value, to_value, date_modified
這是僞代碼,我想只有一個要求做:
SELECT `rate` if `from_value` = $from_value and `to_value` = $to_value
OR
SELECT (1/`rate`) if `from_value` = $to_value AND `to_value` = $from_value
WHERE UNIX_TIMESTAMP('NOW()')-".$expirationTime." < UNIX_TIMESTAMP('`date_modified`'))
我敢肯定,一個的行存在於表中,所以我只想返回rate
的值,並且只有在WHERE子句沒有實現時才返回null。我不希望它爲其他行(沒有條件實現)返回NULL。由於
是這個作品,謝謝。但是對於其他行,返回NULL,即使ELSE子句沒有被指定爲oO。難道不可能在ELSE中強制返回任何東西嗎? ELSE IGNORE或其他什麼 – student310 2012-03-24 06:01:06
@ student310:你得到NULL是因爲沒有ELSE爲不符合WHEN的行提供值。如果要排除其他行,則使用WHERE子句:'where(from_value = $ from_value和to_value = $ to_value)或(from_value = $ to_value和to_value = $ from_value)''。 – 2012-03-24 06:13:05
非常感謝,這按預期工作。 – student310 2012-03-24 06:51:24