query with NULL

"npe-fast-it-net" <[email protected]> Thu, 8 Jul 2004 00:22:18 +0200
Newsgroups gmane.comp.db.mysql.bugs
Message-ID <[email protected]>
OS: Windows XP German
 
"Willkommen bei phpMyAdmin 2.5.6
 
Verbunden mit MySQL 4.0.18-nt-log auf localhost als root@localhost"
 
Following query won't be correctly executed, if table alias acf has not NULL
(= admin_access_special) in the first found row. Unfortunately, all rows of
admins' group are deleted in that case even not contenting NULL-condition.
If I did not anything wrong, then in my intention all rows of selected
conditions in tables should be deleted. A bug?
 
German: Folgenden Abfrage wird nicht richtig ausgeführt, wenn die Tabelle
mit dem Alias acf keine erste Zeile mit NULL ( =
admin_access_special)findet. Leider werden in diesem Fall alle Zeilen der
Admingruppe gelöscht auch wenn die NULL-Bedingung nicht erfüllt ist. Falls
ich keine Fehler begang, sollten nur Zeilen in beiden Tabellen gelöscht
werden, die diesen Bedingungen entsprechen. Ein Bug?
 
 
DELETE  FROM admin_access_files,
admin USING admin_access_files acf,
admin a WHERE a.admin_id = acf.admin_id AND a.admin_groups_id =5 AND
acf.admin_access_special IS NULL;
 
 Datenbank vatansesi  - Tabelle admin  auf localhost
 
# phpMyAdmin SQL Dump
# version 2.5.6
# http://www.phpmyadmin.net
#
# Host: localhost
# Erstellungszeit: 07. Juli 2004 um 23:51
# Server Version: 4.0.18
# PHP-Version: 4.3.6
# 
# Datenbank: `vatansesi`
# 
 
# --------------------------------------------------------
 
#
# Tabellenstruktur für Tabelle `admin`
#
 
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
  `admin_id` int(11) NOT NULL auto_increment,
  `admin_groups_id` int(11) default NULL,
  `admin_firstname` varchar(32) NOT NULL default '',
  `admin_lastname` varchar(32) default NULL,
  `admin_email_address` varchar(96) NOT NULL default '',
  `admin_email_notification_level` tinyint(4) NOT NULL default '0',
  `admin_password` varchar(40) NOT NULL default '',
  `admin_created` datetime default NULL,
  `admin_access_status` tinyint(4) NOT NULL default '1',
  `admin_scheduled` datetime default NULL,
  `admin_access_until` datetime default NULL,
  `admin_modified` datetime default NULL,
  `admin_logdate` datetime default NULL,
  `admin_lognum` int(11) NOT NULL default '0',
  PRIMARY KEY  (`admin_id`),
  UNIQUE KEY `admin_email_address` (`admin_email_address`),
  KEY `admin_stop_email_notification` (`admin_email_notification_level`),
  KEY `admin_access_until` (`admin_access_until`),
  KEY `admin_access_status` (`admin_access_status`),
  KEY `admin_sheduled` (`admin_scheduled`)
) TYPE=MyISAM AUTO_INCREMENT=38 ;
 
#
# Daten für Tabelle `admin`
#
 
INSERT  INTO  `admin` (  `admin_id` ,  `admin_groups_id` ,
`admin_firstname` ,  `admin_lastname` ,  `admin_email_address` ,
`admin_email_notification_level` ,  `admin_password` ,  `admin_created` ,
`admin_access_status` ,  `admin_scheduled` ,  `admin_access_until` ,
`admin_modified` ,  `admin_logdate` ,  `admin_lognum`  ) 
VALUES ( 1, 1,  'N.....',  'E....t',  '[email protected]', 5,
'7497194c8bed6:d4',  '2004-06-14 14:07:00', 1,  NULL ,  '0000-00-00
00:00:00',  '0000-00-00 00:00:00',  '2004-07-07 11:31:17', 163  ) , ( 3, 5,
'Ht',  'E...',  '[email protected]', 1,  '064df98b185ff:ed',  '2004-06-14 19:13:02',
1,  NULL ,  '0000-00-00 00:00:00',  '0000-00-00 00:00:00',  NULL , 0  ) , (
4, 5,   'Ht',  'E.dfdfdf..',  '[email protected]', 1,  '064df98b185ff:ed',
'2004-06-14 19:13:02', 1,  NULL ,  '0000-00-00 00:00:00',  '0000-00-00
00:00:00',  NULL , 0  );
 
 
 
 
 
# --------------------------------------------------------
 
#
# Tabellenstruktur für Tabelle `admin_access_files`
#
 
DROP TABLE IF EXISTS `admin_access_files`;
CREATE TABLE `admin_access_files` (
  `file_access_id` int(4) NOT NULL auto_increment,
  `admin_files_id` int(11) NOT NULL default '0',
  `admin_id` int(11) NOT NULL default '1',
  `admin_access_values` int(11) NOT NULL default '1',
  `admin_access_special` int(1) default NULL,
  PRIMARY KEY  (`file_access_id`),
  UNIQUE KEY `file_access_id` (`file_access_id`),
  KEY `admin_access_special` (`admin_access_special`)
) TYPE=MyISAM AUTO_INCREMENT=393 ;
 
#
# Daten für Tabelle `admin_access_files`
#
 
INSERT INTO `admin_access_files` (`file_access_id`, `admin_files_id`,
`admin_id`, `admin_access_values`, `admin_access_special`) VALUES (4, 6, 1,
2, 1),
(5, 5, 1, 2, NULL),
(6, 4, 1, 2, 1),
(7, 7, 1, 2, NULL),
(8, 8, 1, 2, 1),
(9, 9, 3, 2, 1),
(10, 10, 3, 2, NULL),
(11, 11, 1, 2, 1),
(12, 12, 5, 2, 1),
(13, 13, 6, 2, NULL),
(14, 14, 1, 2, NULL),
(15, 15, 1, 2, 1);