勉強したことのメモ

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

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

   2024/02/25  MySQL / MariaDB

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

  関連記事

PHPからMySQLに接続する際「getaddrinfo for xxxxxx failed」エラーの対応方法
PHPからMySQLに接続する際「getaddrinfo for xxxxxx failed」エラーの対応方法

Podmanコンテナ環境で直前まではPHP→MySQL接続できていたのに「pod ...

MySQLに保存したデータをJSON形式で取得する方法
MySQLに保存したデータをJSON形式で取得する方法

MySQLに保存したデータをJSON形式で利用したいということがたまにある(Ja ...

MySQLでテーブルのカラム名やカラムの型等、詳細情報を取得する方法
MySQLでテーブルのカラム名やカラムの型等、詳細情報を取得する方法

MySQLでテーブルのカラム名やカラムの型等、詳細情報を取得する方法をメモ。 & ...

MySQLでWhere句をつけてdumpファイルを出力する方法
MySQLでWhere句をつけてdumpファイルを出力する方法

MySQLであるテーブルからWhere句をつけて、絞った結果をダンプさせたかった ...

PLESK利用時にMySQLでrootのパスワードが分からない場合の対応方法
PLESK利用時にMySQLでrootのパスワードが分からない場合の対応方法

pleskで管理しているサーバがあり、mysqlのrootのパスワードが分からな ...