Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.04 c
2-1174289320
Нуб
2007-03-19 10:28
2007.04.08
StringGrid


2-1174336570
Malik
2007-03-19 23:36
2007.04.08
Еще один вопрос по Stringgrid y


15-1173986770
Kerk
2007-03-15 22:26
2007.04.08
Выращивание роз


15-1173765754
Layner
2007-03-13 09:02
2007.04.08
ADSL модем + Хаб + 2 ПК в интеренет, возможно?


2-1174455382
User_OKA
2007-03-21 08:36
2007.04.08
Алгоритм





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский