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のview(ビュー)で仮想的なテーブルを作成する方法
MySQL関連のサイトを見ているとview(ビュー)が云々という記事を見かけた。 ...
-
-
MySQLでREGEXPについて
SQL文にREGEXPというのを見てこれ何? となったのでメモ。 ■参考サイト ...
-
-
お名前.comのレンタルサーバ(SDサーバ)にMySQLデータのインポートする方法
お名前.comのレンタルサーバにそこそこ大きいサイズのMySQLデータを移行した ...
-
-
MySQLでtext型カラムに入っている数値をint型としてソートする
MySQLでtext型として指定されているカラムがあり、その中には文字列であった ...
-
-
MySQLで特定の値を加算しつつNULL値の場合は0にする方法
いくつかのコードに対して投票を行い、その合計値をスコアとして出したい。ただ、投票 ...