你能用MySQL结果集中的String替换一个数字吗?

时间:2016-08-04 08:32:27

标签: mysql

我很好奇是否可以显示一行文本而不是通过MySQL返回的实际结果,例如我有一张表:

CREATE TABLE users ( 
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20) NOT NULL,
    gender SMALLINT(1)
);

现在,我想执行以下查询:

SELECT * FROM users

默认情况下会返回类似这样的内容(虚拟数据):

   id  |     name    | gender
  ---------------------------
    1        Rob         0
    2        Sam         1
    3       Alyssa       1
    4        Tom         0

但是,我想知道是否有办法改变它,而不是输出0/1它会输出如下:

id  |     name    | gender
  ---------------------------
    1        Rob     male
    2        Sam     female
    3       Alyssa   female
    4        Tom     male

4 个答案:

答案 0 :(得分:4)

您可以使用case表达式:

SELECT id,
       name,
       CASE gender WHEN 0 THEN 'male' WHEN 1 THEN 'female' END AS gender
FROM   users

答案 1 :(得分:3)

您可以使用CASE WHEN

实现此目的
SELECT id, name, CASE gender WHEN 0 THEN 'male' ELSE 'female' END FROM users.

CASE WHEN是mysql流控制语句的一部分。通常,即使您可能希望根据比较选择某些内容,也可以执行CASE WHEN comparision THEN valule ELSE some other value END。 Mysql也有一个IF ELSE,但它用于存储过程而不是简单的查询。

答案 2 :(得分:2)

使用case ... when ... then ... else

select id, Name, case gender when 1 THEN 'female' else 'male' end as gender from users

答案 3 :(得分:0)

对于替换内容或数据,您必须使用“状态时的情况” Case When Stateement In MySql

使用此功能您可以根据需要执行结果。