• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Null値が入れられない)

Null値の入れ方について

このQ&Aのポイント
  • Null値を入れるためには、どのような方法があるのでしょうか?
  • デフォルト値がNullのフィールドにおいて、空白のまま残した場合は0.00に変換されてしまいます。
  • 同様に、スクリプトの方でデータ編集する際には、空白のままで更新することが必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.4

ちょいとjqGrid調べましたが、 要は後ろでPHPか何かのスクリプトが動いているワケですよね? PHP側でif ( $param === '') {...} みたいにしたら良いのではないでしょうか。

kamoshika333
質問者

お礼

お返事が遅れまして申し訳ございません。 一筋縄ではいかなそうですが、現在格闘中です。ご指導ありがとうございました。

その他の回答 (3)

  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.3

はて、ウチのphpMyAdminはこんなですが・・・ 参考URLのようなことではないですよね?

参考URL:
http://okwave.jp/qa/q2620029.html
kamoshika333
質問者

補足

お付き合い頂き、大変感謝いたします。 言葉たらずでも申し訳ございません。添付頂いた『挿入』タブでなく、『表示』タブや『検索』をかけた際に表示されるデータ一覧で、鉛筆マークでライン編集ができるようになっていますよね。そこでの編集でNULL値を入れたいのです。 編集で、空のままであれば、SQL上は''になってしまい0が格納されますし、もちろんNULLと入れてもSQL上は'NULL'となってしまい、型と一致しないので0が格納されます。ここに何等かのエスケープ記号等(たとえば/Nとか)を入れることによりSQL上でNULLになってくれないものかと。 実際にやりたいのは、phpMyAdmin上ではなく、jqGridの上なんですが、いずれも、ユーザーが簡単に編集できるように、おもて向きはSQLを入れることなく編集を行えればと考えています。 そんなことは出来ません、というご回答でも結構ですので、どうぞよろしくお願い致します。

  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.2

null => 未定義 ''  => 空文字、或いは長さ0のデータとして定義されている。 ということで、空文字(0)とnullはまったく別物です。 なんかしらの数値を入れようとしてるのですから、エラー0を返すって普通だと思いますよ。 MySQLの仕様の部分もあります。 INSERT INTO `int` VALUES ("12B345");  => 123 SQLは  UPDATE `rainfall`.`monthly` SET `JAN` = null WHERE `monthly`.`id` =1; にしましょう。 ''で囲んだものは文字列です。

kamoshika333
質問者

お礼

ありがとうございます。 なるほど、SQLで、'null'になってしまうからアウトなんですね。 `JAN` = null でちゃんとNull値が入りました。 jqGridでもphpMyAdminでもそうなのですが、SQLを使わずに、表中のテキストボックスになんらかの形で入力することによって'null'にならずにnullとして認識される方法はないのでしょうか。\nで入力すると大丈夫、というようなサイトを見たのですが、これもやっぱりだめでした。 jqGridのスクリプトを書き換えるのが大変そうなので、nullを入れたい時には、テキストボックスにこうに入れる、みたいなことができればいいのですが。。。

  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.1

nullじゃなくて空文字が入っているんじゃないでしょうか。 INSERT INTO tbl `int` values ('');  => 0 INSERT INTO tbl `int` values (null);  => Null

kamoshika333
質問者

お礼

ありがとうございます。 仮に空文字としても、デフォルトをNullとしていた場合、Nullが格納されるのではないでしょうか? また、 UPDATE `rainfall`.`monthly` SET `JAN` = 'null' WHERE `monthly`.`id` =1;の場合、nullというのが単に文字認識されてしまうので、型と一致せず、結局空白扱い=0.00となってしまいます。これも本当なら、型と一致しないということで、Null値が入りそうなものですが、そうならないのはなぜでしょうか?

関連するQ&A

専門家に質問してみよう