プロが教えるわが家の防犯対策術!

+------+----------+----------------+----------+
| id | name | address | hobby |
+------+----------+----------------+----------+
| 1 | 武田信玄 | 山梨県甲府市 | NULL |
| 2 | 毛利元就 | 広島県広島市 | NULL |
| NULL | NULL | NULL | 2 |
| NULL | NULL | NULL | 1 |
+------+----------+----------------+----------+
というテーブルBUSHOがあります。

この表の3行目4行目のデータを削除したいので、

mysql> delete from BUSHO where id="null";

とすると、

Query OK, 0 rows affected (0.08 sec)

となってデータは削除されません。
(id=null; id="NULL"; でもできません。)

idがnullの場合のデータ削除はどのように行うのでしょうか?

A 回答 (4件)

話はかわりますが、SQLなんですからIDには


PRIMARY KEYを設定して厳密に管理したほうが
よいとおもいます。
    • good
    • 1
この回答へのお礼

有難うございます。ハッと気づかされました。なるほど、そういうことなのですね。大変貴重なご指摘で大いに勉強になりました。心に留めておきます。

お礼日時:2006/01/21 10:09

前回も、デタラメなSQLの記述をして、基本的な使い方を質問していましたが、自分でマニュアルやインターネットで調べる気はないということですか?



http://oshiete1.goo.ne.jp/kotaeru.php3?q=1905296

今回の場合は、以下のSQLになります。

delete from BUSHO where id in null
    • good
    • 1
この回答へのお礼

お叱りを受けましたが、参考書で調べても解らないから聞いているのです。初心者は、参考書に書いてあることでも、今一、解らない点があります。あなたが、勉強し始めたときは如何でしたでしょうか。
今回のご回答も含め、各諸先輩のご回答のお陰で、参考書と照らし合わせ、「なるほど、そういうことか。この点は注意すべき重要点か。」と納得し、理解を深め、意識に定着させることができました。あまり短気にならず、今後とも初心者のご指導もよろしくお願い申し上げます。

お礼日時:2006/01/21 10:03

#1どの


>ちなみに、Notの場合は数値などと異なり、
>id is not null
>です。
>not( id='1') のように not id is null では駄目。

数値などと同じように、

not(id is null)

書けば通ると思いますよ?
(どうして数値等の比較式ではカッコを使うのに、null条件には使ってあげないの?)
    • good
    • 1
この回答へのお礼

なるほど、良くわかりました。有難うございました。

お礼日時:2006/01/21 09:49

Oracleときっと同じでしょう、ということで自身なし。


Where条件で NULL を使用するならISです。

id is null

ちなみに、Notの場合は数値などと異なり、

id is not null

です。

not( id='1') のように not id is null では駄目。
    • good
    • 0
この回答へのお礼

ありがとうございます。良くわかりました。

お礼日時:2006/01/21 09:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!