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で一連の処理を関数のように実行できるストアドプロシージャの設定と利用方法
MySQL関連のサイトを見ていた際にストアドプロシージャが云々というページがあっ ...
-
-
MySQLにて指定したカラムがNULLもしくは空の場合、あらかじめ決めておいた内容で表示する方法
何らかのフォームとMySQLを組み合わせた際に任意入力の項目はそのカラムがNUL ...
-
-
PLESK利用時にMySQLでrootのパスワードが分からない場合の対応方法
pleskで管理しているサーバがあり、mysqlのrootのパスワードが分からな ...
-
-
MySQLで「server has gone~」というエラーの対応方法
MySQLで「MySQL server has gone away」というエラー ...
-
-
MySQLで特定のテーブルにパーティショニング設定し高速化を図る方法
以前に他社が設計されたログ系のテーブルを拝見した際にパーティショニング設定が行わ ...