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://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_s01.htm
boolはPostgreSQLにはありますが、MySQLにはなさそうです。
ところで例えばmysqlデータベースのuserテーブルやhostテーブルやdbテーブルでもenum('N','Y')が多用されています。もしbool型が存在するならば普通に考えてこのテーブルにもbool型が使われているはずですが見当たりません。
やっぱりenumがいいんですかね~。
boolまたはbooleanは、私の使っているMySQLのバージョンの関係かもしれませんが、ありませんでした。
tinyintだと、-127から128の値が入るらしいので、true / false 以外の値も入ってしまうんじゃないのかなあと思ってます。
bitもできるんですか?また調べてみます。
ありがとうございます。
enum でのやり方はわかりました。
ありがとうございました。
MySQLにはboolのような型はないのでしょうか?
それとも、true/falseを入れたい場合は
かならずenumを使うようになっているのでしょうか?
調べた限りでは、tinyint や set でも
似たようなことはできそうですが、
他の値が入ってしまいそうですよね・・・