2012-08-17 39 views
0

我一直在使用mysql一段时间,但我从来没有遇到过一个问题,我不得不使用一个条件到现在。基本上,我需要做到这一点(最好的办法,我来解释它是写它,就好像在MySQL支持类似条件的PHP):MySQL中的IF如果在SELECT子句中?

SELECT `Gender`=='male' ? '0.5' : '1' AS Col1 FROM Users 

基本上我想有一个0.5 AS Col1中所有的“男性”和所有'女性'为1。

如:

UID Gender 
1 male 
2 female 
3 male 

应返回:

UID Col1 
1 0.5 
2 1 
3 0.5 

如果你想知道有关实现的。我想根据他们的共同习惯向用户推荐“关注谁”。 (对男人来说是0.5,意味着他们跟随男人的数量是男人的两倍)。

这怎么办?

+1

我希望这并不意味着男性只对了一半身价女:) – 2012-08-17 06:33:50

回答

4

您可以使用

SELECT if(`Gender`='male','0.5','1') AS Col1 
FROM Users 

SELECT case when `Gender`='male' 
      then '0.5' 
      else '1' 
     end AS Col1 
FROM Users 
3
select uid, 
    case gender 
     when 'male' then '0.5' 
     when 'female' then '1' 
    end as genderindigit 
from 
    users 
2

尝试

SELECT IF(`Gender` = 'male', '0.5', '1') AS Col1 
FROM Users