人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLで、あるフィールドの値を、trueかfalseでいれていきたいのですが、その場合フィールドの型はどのように設定したらいいのですか?

●質問者: sun-chan
●カテゴリ:インターネット ウェブ制作
✍キーワード:MySQL フィールド
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● yoanium
●27ポイント

create table testtbl ( id int not null primary key auto_increment, yesno enum('false','true'));

のようにすることでyesnoフィールドには'false'か'true'しか入らなくなります。この場合、'false'は1と同等、'true'は2と同等の意味になります。つまり、

select * from testtbl where yesno=2;

select * from testtbl where yesno='true';

は同じ意味になります。

http://dev.mysql.com/doc/refman/4.1/ja/enum.html

◎質問者からの返答

enum でのやり方はわかりました。

ありがとうございました。


MySQLにはboolのような型はないのでしょうか?

それとも、true/falseを入れたい場合は

かならずenumを使うようになっているのでしょうか?


調べた限りでは、tinyint や set でも

似たようなことはできそうですが、

他の値が入ってしまいそうですよね・・・


2 ● yoanium
●27ポイント

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_s01.htm

boolはPostgreSQLにはありますが、MySQLにはなさそうです。

ところで例えばmysqlデータベースのuserテーブルやhostテーブルやdbテーブルでもenum('N','Y')が多用されています。もしbool型が存在するならば普通に考えてこのテーブルにもbool型が使われているはずですが見当たりません。

◎質問者からの返答

やっぱりenumがいいんですかね?。


3 ● chuken_kenkou
●26ポイント

TINYINT(1)

または

BIT

または

BOOL

または

BOOLEAN


MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 6.2 カラム型

◎質問者からの返答

boolまたはbooleanは、私の使っているMySQLのバージョンの関係かもしれませんが、ありませんでした。

tinyintだと、-127から128の値が入るらしいので、true / false 以外の値も入ってしまうんじゃないのかなあと思ってます。


bitもできるんですか?また調べてみます。


ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ