您可以在MySQL结果集中用字符串替换数字吗?

您可以在MySQL结果集中用字符串替换数字吗?,mysql,Mysql,我很好奇是否可以显示一行文本,而不是通过MySQL返回的实际结果,例如,我有一个表: CREATE TABLE users ( id INT(11) AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20) NOT NULL, gender SMALLINT(1) ); 现在,我想执行以下查询: SELECT * FROM users 默认情况下,这将返回如下内容(虚拟数据): 但是,我想知道是否有办法改变它,这样它就不会输出0/1,

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

CREATE TABLE users ( 
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20) NOT NULL,
    gender SMALLINT(1)
);
现在,我想执行以下查询:

SELECT * FROM users
默认情况下,这将返回如下内容(虚拟数据):

但是,我想知道是否有办法改变它,这样它就不会输出
0/1
,而是像这样输出:

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

您可以使用


CASE WHEN是mysql流控制语句的一部分。通常,即使您可能希望基于比较选择某个对象,您也会在比较时执行一个
案例,然后在其他值结束时对其他值进行赋值。Mysql也有IF-ELSE,但它用于存储过程而不是简单的查询。

use
case
<代码>当
<编码>然后…
其他

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

您可以使用
大小写
表达式:

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

对于内容或数据的替换,必须使用“状态时的情况” ,


通过使用它,您可以根据需要执行您的结果。

谢谢@VicenteOlivertRiera,西部最快的枪的危险game@e4c5-我把它标对了,很抱歉。当计时器阻止我标记时,我往往会忘记。不用担心。祝你的项目一切顺利
select id, Name, case gender when 1 THEN 'female' else 'male' end as gender from users
SELECT id,
       name,
       CASE gender WHEN 0 THEN 'male' WHEN 1 THEN 'female' END AS gender
FROM   users