我知道我能做到這一點我可以這樣做嗎?如果(2 <a <8,1,0)作爲MySQL中的值?
if(a<8 , 1, 0) as Value
,但我能做到這一點?
if(2<a<8 , 1, 0) as Value
in mysql?
我累了,它不起作用。如果我想獲得第二個結果,那麼有辦法嗎?
我知道我能做到這一點我可以這樣做嗎?如果(2 <a <8,1,0)作爲MySQL中的值?
if(a<8 , 1, 0) as Value
,但我能做到這一點?
if(2<a<8 , 1, 0) as Value
in mysql?
我累了,它不起作用。如果我想獲得第二個結果,那麼有辦法嗎?
爲了更加規範,我會用一個CASE語句這樣寫:
CASE WHEN a > 2 AND a < 8 THEN 1 ELSE 0 END AS Value
我不這麼認爲,但你可以IF(2<a AND a<8, 1, 0)
SELECT IF (a BETWEEN 3 AND 7, 1, 0) AS Value
BETWEEN包括終點('2 <= a <= 8')。 OP的例子不是('2 2012-01-18 15:57:43
你是對的,會修改以更正答案。 – jjs9534 2012-01-18 20:59:28
從技術上講,你可以只使用SELECT a BETWEEN 3 AND 7
因爲無論如何這將返回1或0。
使用圖3和7,因爲你想> 2和< 8中未> = 2和< = 8
你的例子將評估2 <一個0或1取決於a
值返回。然後它評估0 < 8或1 < 8,它總是評估爲1.
假設列中的值是整數。 – Mchl 2012-01-18 16:04:19
那麼這將是一個合理的假設,沒有表架構可用。 – anothershrubery 2012-01-18 16:06:11
當然,你可以,但它不會給你你期望的結果。但是,完全有效。
實施例:
SELECT IF(1 < 2 < 3, 1, 0) AS `value`
此返回 '1'。它必須工作,對吧?不是真的。會發生什麼如下:
Is 1 < 2 ? Sure! Let's return "1" (an INT because MySQL doesn't have a boolean TRUE)
Is 1 < 3 ? Sure!
那麼當我們這樣做時會發生什麼?
SELECT IF(100 < 200 < 100) AS `value`
那麼這也是TRUE(1)。因爲發生這種情況:
Is 100 < 200? Sure! So let's return "1".
Is 1 < 100? Yep!
你試過了嗎? – Prescott 2012-01-18 15:54:12
是的,它不適合我...我的意思是如果我想得到第二個結果是有辦法做的嗎? – peipei 2012-01-18 15:56:31
它會工作...但值總是爲1 – 2012-01-18 16:05:16