我很好奇是否可以显示一行文本而不是通过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
答案 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,
使用此功能您可以根据需要执行结果。