2

TINYINT(1)値を文字列に変換したい。支払ったサブスクリプションが 1 (または true) の場合、MySQL データベースから.phpファイルに値を取得すると、結果は「はい」になります。サブスクリプションpaid = 0(または false) の場合、結果は「いいえ」になります。

TINYINT(1)選択した単語を含む文字列に値を変換する方法はありますか?

間接的であったり、問題に関する詳細情報が必要な場合は申し訳ありません

4

3 に答える 3

3

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;
}

表示時に正しい文字列を取得するのは簡単です。

于 2014-04-30T16:02:00.547 に答える
2

次を使用できますIF

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

または:

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

<または>、データに基づいて使用することもできます。

于 2014-04-30T15:57:09.677 に答える
1

PHPでこれを行うことができます:

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

または、MySQL クエリで実行します。

SELECT IF(`column_name` = 1, 'yes', 'no') FROM ...
于 2014-04-30T15:57:40.897 に答える