Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Как реализовать быструю смену строк в столбце?


Автор: KonstantinRogozhin 17.5.2009, 21:11
Добрый день!
База создана с помощью .sql файла, вид такой:

=============================
CREATE TABLE `base` (
`ttext` text NOT NULL,
`id` int(10) NOT NULL auto_increment,
`cat` varchar(20) NOT NULL default '',
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=9548 ;

INSERT INTO `base` (`ttext`, `id`, `cat`) VALUES ('example text', 125, '',
=============================

cat пустует, а вот в ttext и id равное количество записей, их 9000.
Что требуется? Быстро менять столбик ttext из файла.txt вида:

hello
thanks
text1
text2

Т.е. разный текст в каждой строке одного столбца ttext.
Подскажите, как реализовать? Версия MySQL-клиента: 4.1.22. Спасибо большое!

Автор: Akina 17.5.2009, 22:08
 smile  smile 

Автор: KonstantinRogozhin 17.5.2009, 22:16
Akina, я не совсем понимаю что это значит.

Автор: Akina 17.5.2009, 22:31
Это значит приблизительно следующее: истинный смысл сего действа был спрятан автором настолько качественно, что в принципе ничего невозможно понять... а то что написано, больше смахивает на какой-то бред.
Попробуйте переформулировать вопрос. И лучше начать с исходной задачи, а не той фигни, которая получилась на середине решения.

Автор: KonstantinRogozhin 17.5.2009, 22:45
Есть текстовый файл с текстом:
text1
text2
text3
text4
text5
...
text8999

Нужно массово организовать следующие запросы с помощью этого файла:
UPDATE `base` SET `ttext`='text1' WHERE `id`=1;
UPDATE `base` SET `ttext`='text2' WHERE `id`=2;
UPDATE `base` SET `ttext`='text3' WHERE `id`=3;
UPDATE `base` SET `ttext`='text4' WHERE `id`=4;
UPDATE `base` SET `ttext`='text5' WHERE `id`=5;
...
UPDATE `base` SET `ttext`='text8999' WHERE `id`=8999;

Надеюсь, так понятней. smile


Автор: KonstantinRogozhin 17.5.2009, 23:44
Спасибо, вроде помощь уже не требуется.

Автор: Akina 18.5.2009, 08:16
Ну в ТАКОМ виде путь очевиден. 

create temporary table temp
load data infile 'data.txt' into table temp
update base join temp
drop table temp

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)