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 ...