[前][次][番号順一覧][スレッド一覧]

mysql:3830

From: takase <takase <takase@xxxxxxxxxx>>
Date: Wed, 27 Jun 2001 04:54:08 +0900
Subject: [mysql 03830] DELETE w/o index key

はじめまして。

MySQL 3.23.39 for win32 を使っています。

DELETE構文での動作がおかしいのではないかと思ったので報告します。

以下のようなテーブル(link)で、

name1	varchar(5)
id		varchar(32)
name2	varchar(4)
name3	varchar(4)
id2		varchar(45)
(すべてNULL許可、キーなし)

name1	00092
id		6c9a089c0342f4959024587edb079a14
name2	NULL
name3	NULL
id2		6c9a089c0342f4959024587edb079a14000920001

というレコード(レコード1)があります。
name2フィールドがNULLであることは、ISNULLを使って確認しました。

このレコードを

DELETE FROM link WHERE name1='00092' AND
 id='6c9a089c0342f4959024587edb079a14' AND name2=''

としても、

DELETE FROM link WHERE name1='00092' AND
 id='6c9a089c0342f4959024587edb079a14' AND name2=NULL

としても削除できません。

name2の部分だけ異なる、

name1	00092
id		6c9a089c0342f4959024587edb079a14
name2	0001
name3	NULL
id2		6c9a089c0342f4959024587edb079a14000920001

というレコード(レコード2)は

DELETE FROM link WHERE name1='00092' AND
 id='6c9a089c0342f4959024587edb079a14' AND name2='0001'

で削除できます。

また、

SELECT FROM link WHERE name1='00092' AND
 id='6c9a089c0342f4959024587edb079a14'

とすると、レコード1もレコード2も表示されます。

さらに、

DELETE FROM link WHERE name1='00092' AND
 id='6c9a089c0342f4959024587edb079a14'

とすると、両レコードは削除されます。

何故、フィールドname2を含んだDELETE文は正常に動作しないのでしょうか?

takase


[前][次][番号順一覧][スレッド一覧]

->    3830 2001-06-27 04:54 [takase <takase@xxxxx] DELETE w/o index key                    
      3831 2001-06-27 05:26 ┗[takase <takase@xxxxx]                                       
      3832 2001-06-27 05:47  ┗[takase <takase@xxxxx]