勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

MySQLのtinyintのカラムにbool値を入れた場合

   2024/02/25  MySQL

他所のシステムに携わることがあり中身を色々見ていると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でJOINの高速化

JOINで無茶苦茶悩んだのでメモ。やりたかった事は、MySQLで テーブルAには ...

MySQLでストアドプロシージャ戻り値対応版であるストアドファンクションの設定と利用方法

先日MySQLのストアドプロシージャに関するメモを書いたが、今回はストアドファン ...

MySQLでREGEXPについて

SQL文にREGEXPというのを見てこれ何? となったのでメモ。 ■参考サイト ...

MySQLでtime型データからint型データの減算を行い、減算後のデータで条件検索する方法

MySQLでtime型データからint型データの減算を行い、減算後のデータを検索 ...

MySQLで全角半角を区別せずに検索する方法(collate utf8_unicode_ci)

あるシステムでMySQLの検索時に「WHERE test_column coll ...