如何在SQL中将值显示为Y或N?

时间:2017-12-22 21:59:06

标签: php mysql mariadb

我正在为中美洲的一家小诊所创建一个数据库。数据库有一个"访问"有几十个字段的表格可以提供一系列是或否的问题。

我知道在SQL中存储二进制值的最佳(最简单,最有效)方法是使用位数据类型(x),但是我知道我也可以使用char(1)的数据类型来实现&# 34; Y"或" N"在使用更多空间(x)的权衡中。

最初,我曾计划使用位数据类型,将1存储为yes,将0存储为no,但是我不知道如何在php中将此显示为Y或N.

目前,在一个单独的表中,我将HIV和糖尿病的值存储为0或1,并且我在我的SQL select语句中执行内部联接到两个单独的表,其中1到Y和0到N.

如果我继续使用这种技术,那么我需要制作数十个表,其中1到Y和0到N.这似乎效率低,而且非常冗余。

有没有办法将表的多个列关联到一个表,其中1到Y和0到N?我使用PHPmyadmin。

2 个答案:

答案 0 :(得分:1)

相对而言,您不需要争抢为小诊所节省桌面空间。以最容易维护的方式编写程序。

通过使用位而不是更简单的列类型可以实现的节省量可能达到数万个字节。 (=无法衡量)。

如果您使用任何int(tinyint?),您可以在查询中翻译成文本。

 SELECT IF(column=1,'Sí','No') column

例如。

答案 1 :(得分:0)

我会使用布尔数据类型来保存状态(如果你不想改变你也可以使用1和0)并使用php将true或false值转换为显示为真Y和当用户想要看到如下结果时,为假N:

<?php

 $stateFromDB; //Get it from db
 if($stateFromDB == true){
    echo "Y";
 }else{
    echo "N";
 }

?>