Mysql select if if if if query with three values

时间:2016-03-30 07:06:01

标签: mysql

例如:(选择IF(u.username = 1,“男性”,“女性”))作为性别这是有效但我有三个值1,2和3。 当值为1时,将返回male,当值为2时,将返回female;当值为3时,将返回两者。

请帮我找到解决方法。 提前谢谢。

4 个答案:

答案 0 :(得分:3)

您可以使用与CASE EXPRESSION非常相似但不受要处理的值数量限制的IF

SELECT CASE WHEN u.username = 1 THEN 'Male'
            WHEN u.username = 2 THEN 'Female'
            WHEN u.username = 3 THEN 'Both'
            .....
       END

答案 1 :(得分:2)

请检查此查询:

SELECT CASE u.username 
WHEN 1 THEN 'MALE'
WHEN 2 THEN 'FEMALE'
ELSE 'BOTH'
END 
FROM user;

答案 2 :(得分:1)

或者您使用ELT()函数:

SELECT ELT('2','Male','Female','Both');

<强>样品

MariaDB [(none)]> SELECT ELT(2,'Male','Female','Both');
+-------------------------------+
| ELT(2,'Male','Female','Both') |
+-------------------------------+
| Female                        |
+-------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]>

答案 3 :(得分:1)

我找到了简单的答案: IF(性别= 1,&#39;男性&#39;,IF(性别= 2,&#39;女性&#39;两者&#39;))AS性

无论如何感谢回复.. 欢呼声!!! ...