我想将TINYINT(1)
的值转换为字符串。 假设订阅费用等于1(或者真),那么当我从我的MySQL数据库检索到我的.php
文件时,结果将是“是”。 如果订阅paid = 0
(或错误)结果将是“否”。将TINYINT(1)转换为字符串
有没有办法将TINYINT(1)
的值转换为包含我选择的单词的字符串?
我很抱歉,如果我是间接的,或者有关问题的详细信息需要
我想将TINYINT(1)
的值转换为字符串。 假设订阅费用等于1(或者真),那么当我从我的MySQL数据库检索到我的.php
文件时,结果将是“是”。 如果订阅paid = 0
(或错误)结果将是“否”。将TINYINT(1)转换为字符串
有没有办法将TINYINT(1)
的值转换为包含我选择的单词的字符串?
我很抱歉,如果我是间接的,或者有关问题的详细信息需要
由于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;
}
显示时显示正确的字符串应该很简单。
看来'有偿= 0那么'是'应该是'付= 0然后'否'',反之亦然。 –
谢谢。对于一些奇怪的弗洛伊德理由,我总是反过来这样做。 –
应该工作:
$number = 1; // or 0 - basically your MySQL variable
$word = $number ? "yes" : "no";
或者:
SELECT IF(`column` = 1, 'yes', 'no') FROM `table_name`
你可以在PHP中做到这一点,在你的MySQL查询中执行:
SELECT IF(`column_name` = 1, 'yes', 'no') FROM ...
有,但为什么打扰?在值到达PHP之后,只需将其转换为PHP,这更简单,更经济,并且不会导致将部分业务逻辑放入SQL查询中(对维护不利)。 – Jon