how about recreating the table w/o the autoincrement, then reload the data, then alter table to reimplement the autoincrement?
> -----Original Message----- > From: Matthew [mailto:[EMAIL PROTECTED] > Sent: Thursday, December 04, 2003 7:12 PM > To: Alex E.Wintermann; [EMAIL PROTECTED] > Subject: Re: Tree-like structure: make it simply > > > I think I can help with questions 1 and 3... see below, > > > > ----- Original Message ----- > From: "Alex E.Wintermann" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Thursday, December 04, 2003 11:44 PM > Subject: Tree-like structure: make it simply > > > > Hello mysql, > > > > I have some table: > > /* BEGIN DUMP *************************************************/ > > CREATE TABLE `sp_tovar_vid` ( > > `id` int(11) NOT NULL auto_increment, > > `id_tovar_vid` int(11) NOT NULL default '0', > > `name` varchar(100) NOT NULL default '', > > `description` varchar(255) NOT NULL default '', > > UNIQUE KEY `id` (`id`) > > ); > > > > INSERT INTO `sp_tovar_vid` VALUES (0, 0, 'root', 'root category'); > > INSERT INTO `sp_tovar_vid` VALUES (7, 0, 'cat.1', ''); > > INSERT INTO `sp_tovar_vid` VALUES (8, 0, 'cat.2', ''); > > INSERT INTO `sp_tovar_vid` VALUES (9, 0, 'cat.3', ''); > > INSERT INTO `sp_tovar_vid` VALUES (10, 0, 'cat.4', ''); > > INSERT INTO `sp_tovar_vid` VALUES (11, 0, 'cat.5', ''); > > INSERT INTO `sp_tovar_vid` VALUES (12, 7, 'subcat 1', '(to cat.1)'); > > INSERT INTO `sp_tovar_vid` VALUES (13, 7, 'subcat 2', '(to cat.1)'); > > INSERT INTO `sp_tovar_vid` VALUES (14, 7, 'subcat 3', '(to cat.1)'); > > INSERT INTO `sp_tovar_vid` VALUES (15, 9, 'subcat 1', '(to cat.3)'); > > INSERT INTO `sp_tovar_vid` VALUES (16, 9, 'subcat 2', '(to cat.3)'); > > INSERT INTO `sp_tovar_vid` VALUES (17, 9, 'subcat 3', '(to cat.3)'); > > INSERT INTO `sp_tovar_vid` VALUES (18, 13, 'subsubcat 1', > '(to subcat.2 > > to cat.1)'); > > /* END DUMP ****************************************************/ > > > > _QUESTION 1_: in what way should i run query to restore table with > > `id`' like in dump? (`id` is auto_increment) > > > > > either omit the `id` field when re-loading the data, e.g. > > INSERT INTO `sp_tovar_vid` > (`id_tovar_vid`,`name`,`description`) VALUES (0, > 'root', 'root category'); > > or, replace the `id` values with an empty string when > re-loading the table > data, e.g. > > INSERT INTO `sp_tovar_vid` VALUES ('', 0, 'cat.1', ''); > > both techniques prompt mysql to reassign the `id` values. > > note that I do not think it is wise/possible to run a query > to restore (or > clean up) the auto_increment values without re-loading the table data. > > > > > > _QUESTION 2_: how to display table with columns= > > ('parent_category.name' ,'category.name')? > > i tried this: > > /***/ > > SELECT t1.`name`,t2.`name` FROM `sp_tovar_vid` AS t1, `sp_tovar_vid` > > AS t2 WHERE t1.`id`=t2.`id_tovar_vid` ORDER BY t1.`name`,t2.`name`; > > /***/ > > How to make it more simply? > > > > _QUESTION 3_: how to display string: > > "subsubcat 1 - subcat.2 - cat.1" > > if we have only `id`=18 ? > > > > use SELECT IF(id=18, true_expression, false expression) FROM table... > > I'm not clear what you mean by "subsubcat 1 - subcat.2 - > cat.1"... minus, or > some sort of string concatenation? > > true expression might be field1 - field2, or CONCAT(field1, > field2, ...) > > > > > -- > > Best regards, > > Alex mailto:[EMAIL PROTECTED] > > > > > > -- > > MySQL General Mailing List > > For list archives: http://lists.mysql.com/mysql > > To unsubscribe: > http://lists.mysql.com/[EMAIL PROTECTED] > > > > > > > > > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: > http://lists.mysql.com/[EMAIL PROTECTED] > > -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]