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でINSERT時にオートインクリメントではないカラムに連番を登録する方法
MySQLでINSERT時にオートインクリメントではないカラムに連番を登録したい ...
-
-
PLESK利用時にMySQLでrootのパスワードが分からない場合の対応方法
pleskで管理しているサーバがあり、mysqlのrootのパスワードが分からな ...
-
-
SQLで同じ値を複数のレコードに対してUPDATE
やりたかった事は、複数のレコードに対して 同じ値に更新したいというもの。 $sq ...
-
-
MySQLでIPを整数値としてカラムに格納する
MySQLでIPを整数値としてカラムに格納しているケースがあった。今までIPが必 ...
-
-
MySQLで指定したカラムの最頻値を抽出する方法
MySQLで指定したカラムの最頻値(全データの中で最も多く出現する値)を抽出した ...