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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/04/18 16:50:31
  • 終了:2007/04/25 16:55:02

回答(3件)

id:yoanium No.1

yoanium回答回数22ベストアンサー獲得回数02007/04/18 17:13:39

ポイント27pt

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

id:sun-chan

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

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


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

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

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


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

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

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

2007/04/18 17:19:29
id:yoanium No.2

yoanium回答回数22ベストアンサー獲得回数02007/04/18 19:02:01

ポイント27pt

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

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

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

id:sun-chan

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

2007/04/18 20:48:11
id:chuken_kenkou No.3

chuken_kenkou回答回数722ベストアンサー獲得回数542007/04/18 19:38:04

ポイント26pt

TINYINT(1)

または

BIT

または

BOOL

または

BOOLEAN


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

id:sun-chan

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

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


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


ありがとうございます。

2007/04/18 20:47:47

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません