Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.08;
Скачать: CL | DM;

Вниз

phpMySQLAdmin   Найти похожие ветки 

 
SerJaNT ©   (2007-03-13 08:56) [0]

Как в phpMySQL произвести замену определенной строки по все базе данных? Или каким sql-запросом?


 
easy ©   (2007-03-13 09:25) [1]

UPDATE `table` SET `string` = "newstring" WHERE `string` = "oldstring";


 
homm ©   (2007-03-13 09:28) [2]

> [1] easy ©   (13.03.07 09:25)

Если телепатор включить, то можно представить что человеку нужно автомсатически для всех таблиц, которых у него под сотню (скажем) плюс, выражние "замену определенной строки" вполне может означать "замену определенной подстроки" :)

Автор, что хотел то?


 
SerJaNT ©   (2007-03-13 09:31) [3]


> easy ©   (13.03.07 09:25) [1]


Не, немного не то. Во-первых, таблиц там очень много, и во-вторых, заменить надо подстроку на строку. Может php-скриптом как-то можно?


 
Юрий ©   (2007-03-13 09:33) [4]

> [2] homm ©   (13.03.07 09:28)
> Если телепатор включить

Даже телепатор включать не надо, сказано же, для всей базы данных. :)


 
homm ©   (2007-03-13 09:37) [5]

> [4] Юрий ©  

А ты говоришь, не надо!!! только взгляни на [2] и [3] Один в один!!! :)


 
SerJaNT ©   (2007-03-13 09:37) [6]

Описываю подробнее:

есть база в которой n-ое количество таблиц. В неизвестной записи(ях) неизвестно каких таблиц находятся неверные данные т.е. внутри текста. Вопрос такой: необходимо "просмотреть" все эти таблицы базы и заменить неверный текст на правильный. Как?


 
Юрий ©   (2007-03-13 09:37) [7]

> [0] SerJaNT ©   (13.03.07 08:56)

Выводит список таблиц:
SHOW TABLES;
Дальше разобрать, и пройтись по всем в php.


 
homm ©   (2007-03-13 09:38) [8]

> В неизвестной записи(ях) неизвестно каких таблиц

Хотя-бы названия полей известны?


 
SerJaNT ©   (2007-03-13 09:40) [9]


> В неизвестной записи(ях) неизвестно каких таблиц


нет :-) Таблиц там просто дохрена и я не знаю даже где хранятся эти неверные данные.. вот задачка-то, блин...


 
SerJaNT ©   (2007-03-13 09:42) [10]

а средствами phpmysqladmin никак нельзя ?


 
Рамиль ©   (2007-03-13 09:46) [11]

Лично я, учитывая мои знания php, забрал бы базу себе на комп и прошелся по ней делфевой програмкой:)


 
SerJaNT ©   (2007-03-13 09:49) [12]


> Лично я, учитывая мои знания php, забрал бы базу себе на
> комп и прошелся по ней делфевой програмкой:)


Спасибо идею, так наверное и сделаю. Только сливать базу придется еще неделю...


 
Рамиль ©   (2007-03-13 09:53) [13]

Съезди к хостеру, если это физически возможно, за символичскую плату он ее тебе сольет и зальет обратно потом. Но если база такая большая, то за эту неделю можно и php подучить..


 
homm ©   (2007-03-13 09:58) [14]

Алгоритм, имхо, такой:

1) Выясняешь названия всех таблиц с помошью SHOW TABLES, далее проделываешь все пункты для каждой таблицы
2) шлеш SELECT * FROM TableName LIMIT 1;
3) mysql_fetch_array для результата дает масив, где названия полей есть хеши масива (так мы узнаем названия полей).
4) далее составляем запрос типа SELECT Fld1, Fld2, Fld3... FROM TableName WHERE Fld1 LIKE "%substr%" OR Fld2 LIKE "%substr%" OR Fld3 LIKE "%substr%" ....;
5) Заменяем в возвращенном результате substr на new_substr, причем сохраняем куданить в $row2, а не тупо заменяем.
6) И самое интересное. UPDATE TableName SET Fld1 = $row2[fld1], Fld2 = $row2[fld2], Fld3 = $row2[fld3], .... WHERE Fld1 = $row[Fld1] AND Fld2 = $row[Fld2] AND Fld3 = $row[Fld3].

ИМХО. За***шся отлаживать. Будет большое везение, если пункты 4,5,6 можно схлопнуть до одной операции с помошью регулярных выражений, поищи в инете, беглый взгляд на хелп по mysql ясность не внес.


 
homm ©   (2007-03-13 10:04) [15]

Если база реально большая, работать это будет часы и сутки...


 
DSKalugin ©   (2007-03-13 10:57) [16]

Выгрузить базу в текстовый скрипт(дамп) а потом "работа со строками" с последующей заливкой этого дампа обратно. Достаточно знать как заменить подстроку в строке(хоть средствами блокнота). Знания SQL тут совсем не нужны



Страницы: 1 вся ветка

Текущий архив: 2007.04.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.032 c
15-1173986770
Kerk
2007-03-15 22:26
2007.04.08
Выращивание роз


2-1174118231
Boker
2007-03-17 10:57
2007.04.08
TImage - невозможна загрузка ...??


2-1174132698
Игорек
2007-03-17 14:58
2007.04.08
Сообщения


15-1173855658
nasty196
2007-03-14 10:00
2007.04.08
panel zada4


2-1173807982
Hollander
2007-03-13 20:46
2007.04.08
Замена Пуск->Выполнить