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でdatetime型のカラムをdate型やtime型に変換して検索する方法
MySQLでdatetime型のカラムがあり、そちらをdate型やtime型に変 ...
-
-
MySQLでCSVから列を指定してインポート
MySQLでCSVからデータをインポートしたかった。またエクセル風にいうA列はi ...
-
-
MySQLのバックアップファイルを簡単に作成できるライブラリ「myphp-backup」の利用方法
MySQLのバックアップを取る際にadminerとかから手動で対応するのではなく ...
-
-
WordPressでデータベース接続確立エラー発生時の対応方法
WordPressで「データベース接続確立エラー」というエラー表示がされた。大抵 ...