21

我的表中有一个 BOOLEAN 类型的列。返回结果时,我想将 0/1 转换为 Yes/No。

我在这个线程上找到了回复:Echo boolean field as yes/no or other values

响应中提到了一个 IF THEN 语句,但是当我尝试时,我只收到来自 MySQL 的抱怨,即存在语法错误。这是我正在使用的行:

IF qz.quiz_enabled == 1 THEN 'yes' ELSE 'no' AS enabled

这是错误:

use near 'qz.quiz_enabled == 1 THEN 'yes' ELSE 'no' AS enabled
4

2 回答 2

40
select case when qz.quiz_enabled 
            then 'yes' 
            else 'no' 
       end

或者

select if(qz.quiz_enabled, 'yes', 'no')

SQLFiddle 演示

于 2013-06-05T21:55:09.340 回答
0

http://dev.mysql.com/doc/refman/5.0/en/if.html

BEGIN
DECLARE s VARCHAR(20);

IF n > m THEN SET s = '>';
ELSEIF n = m THEN SET s = '=';
ELSE SET s = '<';
END IF;

SET s = CONCAT(n, ' ', s, ' ', m);

RETURN s;
END 
于 2013-06-05T21:56:03.530 回答