TINYINT(1)
値を文字列に変換したい。支払ったサブスクリプションが 1 (または true) の場合、MySQL データベースから.php
ファイルに値を取得すると、結果は「はい」になります。サブスクリプションpaid = 0
(または false) の場合、結果は「いいえ」になります。
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;
}
表示時に正しい文字列を取得するのは簡単です。
次を使用できますIF
。
SELECT IF(`column` = 1, 'yes', 'no') FROM `table_name`
または:
SELECT IF(`column` = 0, 'no', 'yes') FROM `table_name`
<
または>
、データに基づいて使用することもできます。
PHPでこれを行うことができます:
$number = 1; // or 0 - basically your MySQL variable
$word = $number ? "yes" : "no";
または、MySQL クエリで実行します。
SELECT IF(`column_name` = 1, 'yes', 'no') FROM ...