MySQLの数値フィールドに空のフィールドが必要です。 NULL値を許可するようにフィールドを定義すると、デフォルトは0.00になります。時にはこの行項目のために私は価値がないことを好みます。私はおそらく、これらのいくつかの項目を追跡するために別のテーブルを作成することができますが、この時点で私は1つのテーブルソリューションを好む。空のMySQL数値フィールドを使用することはできますか?
1
A
答えて
1
これはDEFAULT
で行ったためです。それをしないでください。
create table t1
( id int auto_increment primary key,
thing varchar(100) not null,
anInt NUMERIC(5,2) NULL DEFAULT 0
);
insert t1(thing) values ('fish');
select * from t1;
+----+-------+-------+
| id | thing | anInt |
+----+-------+-------+
| 1 | fish | 0.00 |
+----+-------+-------+
1
作品を私のためのMySQL 5.7.12に:
mysql> create table X (a double null);
Query OK, 0 rows affected (0.01 sec)
mysql> desc X;
+-------+--------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+-------+
| a | double | YES | | NULL | |
+-------+--------+------+-----+---------+-------+
1 row in set (0.00 sec)
mysql> alter table X add column b int;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc X;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| a | double | YES | | NULL | |
| b | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> insert into X (a) values (1.3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into X (b) values (1);
Query OK, 1 row affected (0.00 sec)
mysql> select * from X;
+------+------+
| a | b |
+------+------+
| 1.3 | NULL |
| NULL | 1 |
+------+------+
2 rows in set (0.00 sec)
+0
MySQL 14.14のようなものはありません。これはクライアントバージョンのように聞こえるが、クライアントは一般に下位互換性があり、互換性がある場合もある。サーバのバージョンはクエリ 'SELECT @@ VERSION;'で検索されます。 –
+0
固定、ありがとう.. – creativeChips
関連する問題
- 1. WHERE句でMySQLのフィールド値を使用することはできますか?
- 2. 空のRequestParam値にdefaultValueを使用することはできますか?
- 3. mysqlをjavascriptlで使用することはできますか?
- 4. mysql - 複数のフィールドに参加することはできますか?
- 5. MySQLクエリの式を別のフィールドの変数として再利用することはできますか?
- 6. 隠し型フィールドの値フィールドに関数の戻り値を与えることはできますか?
- 7. mysqlの日付フィールドに空の値を挿入しますか?
- 8. MySQL SQLで値を再利用することはできますか?
- 9. MySQLの構文。テーブル名、ドット、フィールド名の間にスペースを使用することはできますか?
- 10. 空のmysql値を取得することができません
- 11. PHPでmySQLデータベースのフィールドが空であることを確認するには
- 12. どのように私はこの3つのフィールドをmysqlで数えることができますか?
- 13. awkは空のフィールドを分けることができますか?
- 14. MySQLでデフォルト値なしのフィールドに対して空の値の自動挿入を無効にすることはできますか?
- 15. Django:DateField "このフィールドを空白にすることはできません。"
- 16. フィールドが空白のときにサブクエリを使用して値を挿入する
- 17. sqlalchemyでMYSQL空間拡張を使用できますか?
- 18. フィールド値の文字と数字のみを使用するMySQL検索
- 19. Mysqlは、regexpでwhere句に別のテーブルのフィールド値を使用しますか?
- 20. leftOuterJoinで空のデフォルト値を初期化することはできますか?
- 21. MySQLデータベースでarulesパッケージを使用することはできますか?
- 22. MySQLでCrosstab/Pivot Queryを使用することはできますか?
- 23. Mysqlはこのテーブルのmyisamを使用できますか?
- 24. アンダースコアを使用して配列値を複数の値でフィルタリングすることはできますか?
- 25. 既存のフィールドを使用すると、別のフィールドの値はどのように達成できますか?
- 26. PHPで変数から名前空間を使用することはできますか?
- 27. Fortranでゼロの値を持つ変数を空白として出力することはできますか?
- 28. UiBinderテンプレートのフィールド値としてenum値を使用できますか?
- 29. PHPとMySQLでバインド変数を使用できますか?
- 30. MySQL - regexpを使って行を数えることはできますか?
正しいアプローチは、 'NULL'を使用することです。これは0.00とはかなり異なるので、なぜNULLが正当な値にデフォルトするのかわかりません。 –
Mysqlは、指示されない限り、 'null'値を数値に変換することはまずありません。しかし空の文字列をnullではなく値として渡して0に変換する可能性があります。 – Shadow