2014-04-30 118 views
0

我想將TINYINT(1)的值轉換爲字符串。 假設訂閱費用等於1(或者真),那麼當我從我的MySQL數據庫檢索到我的.php文件時,結果將是「是」。 如果訂閱paid = 0(或錯誤)結果將是「否」。將TINYINT(1)轉換爲字符串

有沒有辦法將TINYINT(1)的值轉換爲包含我選擇的單詞的字符串?

我很抱歉,如果我是間接的,或者有關問題的詳細信息需要

+1

有,但爲什麼打擾?在值到達PHP之後,只需將其轉換爲PHP,這更簡單,更經濟,並且不會導致將部分業務邏輯放入SQL查詢中(對維護不利)。 – Jon

回答

2

由於MySQL不提供任何像樣的機制,以防止插入-133TINYINT專欄中,我會簡單地測試對零/非零:

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那麼'是'應該是'付= 0然後'否'',反之亦然。 –

+0

謝謝。對於一些奇怪的弗洛伊德理由,我總是反過來這樣做。 –

1

應該工作:

$number = 1; // or 0 - basically your MySQL variable 
$word = $number ? "yes" : "no"; 

或者:

SELECT IF(`column` = 1, 'yes', 'no') FROM `table_name` 
1

你可以在PHP中做到這一點,在你的MySQL查詢中執行:

SELECT IF(`column_name` = 1, 'yes', 'no') FROM ...