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でユーザー作成時にエラーが発生
SSHからrootアカウントでMySQLにログインし、ユーザーを作成しようとする ...
-
-
MySQLで全国の市区町村のデータを入手し、抽出する方法
都道府県と市区町村が連携したセレクトメニューを作成したかった。具体的には大阪府を ...
-
-
MySQLでtime型データからint型データの減算を行い、減算後のデータで条件検索する方法
MySQLでtime型データからint型データの減算を行い、減算後のデータを検索 ...
-
-
MySQLで「server has gone~」というエラーの対応方法
MySQLで「MySQL server has gone away」というエラー ...
-
-
phpMyAdminでのエクスポート/インポート
DBのバックアップを取る際にエクスポート/インポートを行うが、 データ件数が多い ...