2017-11-27 15 views
1

I持つ学生の出席についての情報を格納するため、以下の表:列はcharから完全な値を取得します。(1)

attendance 
(id INT(11) 
, type CHAR(1) 
, for_date DATETIME 
); 

type欄に新しいレコード、Present, 2017-11-26、MySQLの店舗Pを挿入します。

したがって、私はSELECTクエリでダッシュボードページに完全な値を表示しようとしていますが、失敗します。

列のデータ型を変更せずに完全な値を取得できますか?ここで

は、私がやったことだ:あなたは、フルテキスト例えば格納すべき

SELECT `id`, CONVERT(`type`, CHAR(10)) AS type, `for_date` FROM `attendance`; 
+0

表は「出席」または「出席」ですか?いずれにせよ、明らかに、最初に格納されていないデータを検索することはできません。 「再送」は挿入時に破棄されました。だから、もしあなたが 'present'を返そうとするならば、特にそうするようにMySQLに指示する必要があります。 – Strawberry

+0

テーブルの名前は「出席」です。レコードを挿入する前にまずCHAR(10)を変更してから 'present'または 'absent'を返しますか? –

+0

あなたは、MySQLに単一の文字のためのスペースを予約するように要求すると、何らかの方法であなたの指示を無視し、とにかくスペースを増やすことになります。それはどのように動作するのか、それは良い考えです.MySQLはすでに十分に狂っています。 –

答えて

0

attendance 
(id INT(11) 
, type CHAR(16) 
, for_date DATETIME 
); 

をあなたが選択...

を使用して、すべてのテキストを取得するそうでなければ、デコードする必要があります値を返す。 whenを使用する場合

SELECT `id`, case when type = 'P' then 'Present' end as my_type, `for_date` 
FROM `attendance`; 
+0

ありがとうございました。チャール(1)からチャール(16)に変更する必要はありません。 –

+0

@ user7622967もちろん、 'P'で始まり' Present'ではない他の値の処理を開始しない限り、;-) –

関連する問題