one

one
Рейтинг
336
Регистрация
15.04.2007
DeveloperRu:
не может быть :) проверил - копия один в один создается с новым названием таблицы

Тут как бы еще момент всплыл... не сказал... у каждой из таблиц формат ячеек неодинаков.

one добавил 20.06.2010 в 16:09

С заменой значений в ячейках не поможет никто?

Если разовая задача, то я бы просто в цикле с помощью пхп вытянул бы строки и потом обновил бы текущие.

Задача разовая...

Dreammaker:
one, хм, а как должно? :)

пропускать т.к. 12 не 2

Dreammaker:
UPDATE table_name SET catid = REPLACE(catid, '2', '222')

в статье теоретический пример показывающий как работает функция без столбцов.

Ваш пример то, что надо, но почему то если в ячейке скажем есть значение 12, то замена происходит на 1222.

bearman:
one, http://www.electrictoolbox.com/mysql-select-replace/

если я правилн опонял ваш вопрос

Впринципе да. Только вот на такой запрос:

SELECT REPLACE(catid, '2', '222')

Где catid - поле в котором делать замену, 2 - что менять, 222 - на что менять.

Получаю:

Что нет catid

Взято из примера:

If you were doing this against the column "foo" you would do this instead:

SELECT REPLACE(foo, 'aaa', 'xyz');

Пока sabotage саботирует обещанную помощь :D подскажите такой запрос:

Найти в <путь до ячейки> значение Х и заменить его на У

Тут всплыли кое какие подводные камни, без специалиста по мускулу не обойтись. Договорился сsabotage, может поможет.

Спасибо, пошел пробовать...

sabotage:
Поля строки перенесутся за одну операцию:

INSERT INTO table2 (introtext, fulltext) SELECT home_text, body_text FROM table1

А БД как правильно указать?

bearman:
может вы покажите структуру исходных таблиц и нужных? так проще пойдет, а то вы извиняюсь, не ъяснитьпонимаете что хотите либо не можете обя

Понял! Конкретная задача - Конкретное решение! Солидно! :)

Вот собственно из диалога такое ТЗ получилось:

Имеем базу base1 с таблицей table1 с такой структурой:

  `id` int(11) NOT NULL auto_increment,
`cat` int(11) NOT NULL default '0',
`keywords` varchar(255) NOT NULL default '',
`title` varchar(255) NOT NULL default '',
`home_text` text NOT NULL,
`body_text` text NOT NULL,
`newsdate` varchar(14) NOT NULL default '',
`author` varchar(50) NOT NULL default '0',
`import_name` varchar(255) NOT NULL default '',
`import_url` varchar(255) NOT NULL default '',
`hits` int(11) NOT NULL default '0',
`view_lang` varchar(10) NOT NULL default '',
`comments` int(1) NOT NULL default '0',
`comments_count` int(11) NOT NULL default '0',
`main_news` int(1) NOT NULL default '0',
PRIMARY KEY (`id`)

В этой таблице 286 записей с данными. Надо из поля Х base1 table1 взять все данные и перенести в поле Y, базу base2 таблицу table2 с такой вот структурой (без записей):

  `id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`title_alias` varchar(255) NOT NULL default '',
`introtext` mediumtext NOT NULL,
`fulltext` mediumtext NOT NULL,
`state` tinyint(3) NOT NULL default '0',
`sectionid` int(11) unsigned NOT NULL default '0',
`mask` int(11) unsigned NOT NULL default '0',
`catid` int(11) unsigned NOT NULL default '0',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`created_by` int(11) unsigned NOT NULL default '0',
`created_by_alias` varchar(255) NOT NULL default '',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
`modified_by` int(11) unsigned NOT NULL default '0',
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`publish_up` datetime NOT NULL default '0000-00-00 00:00:00',
`publish_down` datetime NOT NULL default '0000-00-00 00:00:00',
`images` text NOT NULL,
`urls` text NOT NULL,
`attribs` text NOT NULL,
`version` int(11) unsigned NOT NULL default '1',
`parentid` int(11) unsigned NOT NULL default '0',
`ordering` int(11) NOT NULL default '0',
`metakey` text NOT NULL,
`metadesc` text NOT NULL,
`access` int(11) unsigned NOT NULL default '0',
`hits` int(11) unsigned NOT NULL default '0',
`metadata` text NOT NULL,

Как пример: Взять данные из base1, table1, поле`home_text` и перенести в base2,table2, поле`introtext`, далее берем данные из base1, table1, поле`body_text` и синхронно предедущей операции положить их в base2,table2, поле`fulltext`. Ну и далее по выбору.

Всего: 3456