MySQLのtinyintのカラムにbool値を入れた場合
2024/02/25
他所のシステムに携わることがあり中身を色々見ているとMySQLでtinyint(1)のカラムがあり、PHP側からbool値で格納しているというケースがあった。
tinyintは数値が入るものと認識していたのでよく分からなかったんだけど、以下テストすると問題なく動くようだった。
テスト内容
//テーブル作成 CREATE TABLE `tinyint_test` ( `flg` tinyint(1) NOT NULL, `ymd` timestamp NOT NULL ) //テーブル構造 +-------+------------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +-------+------------+------+-----+-------------------+-----------------------------+ | flg | tinyint(1) | NO | | NULL | | | ymd | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | +-------+------------+------+-----+-------------------+-----------------------------+ //インサートテスト INSERT INTO tinyint_test (flg) VALUES (true), (false), (1), (0), ('1'), ('0') //テスト結果 +-----+---------------------+ | flg | ymd | +-----+---------------------+ | 1 | 2015-12-15 22:57:09 | | 0 | 2015-12-15 22:57:09 | | 1 | 2015-12-15 22:57:09 | | 0 | 2015-12-15 22:57:09 | | 1 | 2015-12-15 22:57:09 | | 0 | 2015-12-15 22:57:09 | +-----+---------------------+
所感
trueは1に、falseは0になるというのは知らなかったので勉強になった。
関連記事
-
-
MySQLでIPを整数値としてカラムに格納する
MySQLでIPを整数値としてカラムに格納しているケースがあった。今までIPが必 ...
-
-
MySQLでtext型カラムに入っている数値をint型としてソートする
MySQLでtext型として指定されているカラムがあり、その中には文字列であった ...
-
-
MySQLで指定の順にデータをソートする方法(ORDER BY FIELD)
MySQLで指定した順にソートしてデータを取り出したい。通常だと主キーだったり何 ...
-
-
adminerでMySQLに接続しようとするとエラーになる場合の対応方法
新しく構築したサーバにadminerを入れて接続しようとすると、「mysqlnd ...
-
-
MySQLでphpMyAdminやAdminer上だけ文字化けする場合の対応方法
レンタルサーバーのプログラムでWebページ上では文字化けしていないのに、phpM ...