MySQL IF 在 SELECT 子句中?

lis*_*aro 0 mysql conditional-statements

我使用 mysql 已经有一段时间了,但到目前为止我从未遇到过必须使用条件的问题。基本上我需要这样做(对我来说解释它的最好方法是将其写成就好像 mysql 支持类似 php 的条件一样):

SELECT `Gender`=='male' ? '0.5' : '1' AS Col1 FROM Users
Run Code Online (Sandbox Code Playgroud)

基本上,我希望所有“男性”的 AS Col1 为 0.5,所有“女性”的 AS Col1 为 1。

例如:

UID Gender
1   male
2   female
3   male
Run Code Online (Sandbox Code Playgroud)

应该返回:

UID Col1
1   0.5
2   1
3   0.5
Run Code Online (Sandbox Code Playgroud)

如果您想了解实施情况。我想根据用户的共同习惯推荐“关注谁”。(对于男性来说,0.5 意味着他们关注的女性数量是男性的两倍)。

如何才能做到这一点?

jue*_*n d 5

您可以使用

SELECT if(`Gender`='male','0.5','1') AS Col1
FROM Users
Run Code Online (Sandbox Code Playgroud)

或者

SELECT case when `Gender`='male'
            then '0.5'
            else '1'
       end AS Col1
FROM Users
Run Code Online (Sandbox Code Playgroud)