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で経度緯度から半径○Kmのデータを抽出する方法
経度と緯度をtext型として格納しているMySQLのテーブルがあり、指定した経度 ...
-
SSH接続でMySQLにダンプファイルをインポートする方法
phpMyAdminやAdminerが入っていなかったり、ダンプファイルのサイズ ...
-
MySQLでdatetime型データの〇日後を取得する方法(DATEDIFF)
MySQLでdatetime型データがあり、何日経過しているかを取得し、〇日経過 ...
-
phpMyAdminでのエクスポート/インポート
DBのバックアップを取る際にエクスポート/インポートを行うが、 データ件数が多い ...
-
MySQLで特定の値を加算しつつNULL値の場合は0にする方法
いくつかのコードに対して投票を行い、その合計値をスコアとして出したい。ただ、投票 ...