我想将TINYINT(1)
值转换为字符串。
假设支付的订阅等于1(或为真),那么当我从MySQL数据库中检索值到我的.php
文件时,结果将为“是”。
如果订阅paid = 0
(或错误),结果将为“否”。
有没有办法将TINYINT(1)
值转换为包含我选择的字词的字符串?
如果我是间接的,或者如果需要有关该问题的更多信息,我很抱歉
答案 0 :(得分:2)
您可以使用IF
:
SELECT IF(`column` = 1, 'yes', 'no') FROM `table_name`
或者:
SELECT IF(`column` = 0, 'no', 'yes') FROM `table_name`
或者您可以根据数据使用<
或>
等。
答案 1 :(得分:2)
鉴于MySQL没有提供任何合适的机制来阻止-1
或33
插入TINYINT
列,我只是测试零/非零:
SELECT CASE
WHEN paid<>0 THEN 'Yes'
WHEN paid=0 THEN 'No'
ELSE 'Unknown'
END is_paid
FROM suscription
该问题也被标记为 PHP 。我认为尽可能使用原生类型更清晰:
if (is_null($row['paid']) {
$paid = null;
}else{
$paid = $row['paid']!=0;
}
在显示时获取正确的字符串应该很简单。
答案 2 :(得分:1)
您可以在PHP中执行此操作:
$number = 1; // or 0 - basically your MySQL variable
$word = $number ? "yes" : "no";
或者,在MySQL查询中执行此操作:
SELECT IF(`column_name` = 1, 'yes', 'no') FROM ...