Re: query with NULL

Sergei Golubchik <[email protected]> Thu, 8 Jul 2004 10:02:07 +0200
Newsgroups gmane.comp.db.mysql.bugs
Message-ID <[email protected]>
Hi!

Thanks!
I created a bugreport for this:

http://bugs.mysql.com/4458

you may use this url to track the progress of the issue

On Jul 08, npe-fast-it-net wrote:
> 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);
Regards,
Sergei

-- 
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /   Sergei Golubchik <[email protected]>
 / /|_/ / // /\ \/ /_/ / /__  MySQL AB, Senior Software Developer
/_/  /_/\_, /___/\___\_\___/  Osnabrueck, Germany
       <___/  www.mysql.com

-- 
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe:    http://lists.mysql.com/[email protected]