
こんばんは。
MYSQLではint型、varchar型、text型、smallint型、tinity型、float型で
データが無いことを表すのはnullでも構わないですよね。
そのときPHPでMYSQLからデータを受け取ってデータが空かどうかを区別するには、
if(!a==null){}のようにnullを使うことになります。
PHPでnullを扱うのはトラブルの元になると参考書に書いてありました。
そういうときは、MYSQLでnullじゃなくて0が一番無難でしょうか。
また、0よりも半角文字や「データ無」のようにするべきですか。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>MYSQLではint型、varchar型、text型、smallint型、tinity型、float型で
>そういうときは、MYSQLでnullじゃなくて0が一番無難でしょうか。
>また、0よりも半角文字や「データ無」のようにするべきですか。
数値型は集計する前提なのでNULLを利用するのが妥当です。
ただしNULL値が多いと想定される場合はテーブル構成を
変えてJOINして使う方が効率的です
文字列型はNULL文字が必ずしも妥当ではないので""で処理した方が
よいかもしれません。
また言語によってとくにPHPなどはデータ比較を柔軟に行うことがあり
NULL、0、""、false、"0"などをあいまいに同値として処理するケースがあります。
NULLをつかうのであれば厳密にデータを比較することをお勧めします
No.1
- 回答日時:
時と場合による。
例えばテストの点数なんかをDBに格納したとしましょう。
この場合0は0点ですが、テストを受けなかった人が0点ではまずいでしょ。
テストを受けなかった人は点数なしに設定しておく必要があるでしょ。
(この場合、nullではなくてテストの点数としてあり得ない-1をデータなしとして扱うなども出来ます。)
またtext型に関してもnullでなくて""の様に空文字を入れておくことが出来ます。(nullと空文字は別物です。)
ちなみに
>if(!a==null){}のようにnullを使うことになります。
これはあまりいただけない比較の方法。
nullの比較はis_null()関数を使いなさい。
それと数値型の比較以外で「==」は使わないこと。(===や対応している関数があるならそれを利用すること)
>データを受け取ってデータが空かどうかを区別するには
空文字とnullは別物。
とこんな感じだけど質問者はDBに手を出す前にPHPの基本を理解していない。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csvデータ不要列の削除をbatフ...
-
【VB】セルが空になるまで処理...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
truncate tableを使って複数の...
-
副問合せを使わずにUNIONと同様...
-
sqlに記述できない文字
-
既存データをINSERT文にして出...
-
異なるデータベース間でinner j...
-
オラクルのUPDATEで複数テーブル
-
【SQL】他テーブルに含まれる値...
-
Accessで今日から5日後
-
複数レコードの複数フィールド...
-
SQLで、Join句で結合したテ...
-
詳細設計書でselect文の導き方
-
SELECTした結果に行番号を求めたい
-
T-SQLで任意の箇所で強制終了す...
-
Accessの構成をコピーしたい
-
Access にて "mm:ss.0" 形式の ...
-
Accessで最新のレコード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
追加クエリで重複データなしで...
-
【VB】セルが空になるまで処理...
-
csvデータ不要列の削除をbatフ...
-
pandasでsqlite3にテーブル作成...
-
EXCELで外部データの取り込みが...
-
Excel VBAのユーザーフォームで...
-
エクセル 2つの列にある値の完...
-
JDBCを使ってdate型へのINSERT...
-
ACCESS VBAでSeekメソッドの処...
-
VBAで、新しい値のみを抜き出す...
-
マクロでファイルを読み込み、...
-
ListBoxにAddItemする際、重複...
-
自作アプリからAPIで他のアプリ...
-
PHPとMYSQL、DBのデータが空の...
-
テーブルの更新を簡単にできる...
-
WEBサイトって何ですか?
-
重複データをなくす
-
VBAでの行数を揃える方法
-
リストボックスからリストボッ...
-
エクセルデータをAccessに取り...
おすすめ情報