Самый быстрый способ обновить базу данных Mysql

Просто интересно, каким будет лучший способ обновить всю (большую) базу данных.

По сути, я унаследовал БД, в которой были проблемы с символами, с некоторой помощью я разобрал проблемы с символами в дальнейшем (записывая в них), однако существующие данные требуют очистки.

Было хорошее предложение, чтобы я мог использовать utf_decode для очистки всего этого - я пробовал это на неправильном значении на самой странице (при извлечении), и это прекрасно работает.

Кажется, что существует много таблиц и много данных, каков наилучший / самый быстрый способ очистки всех данных во всей БД с помощью utf_decode?

Спасибо

Спасибо за комментарии, я, кажется, не могу комментировать прямо так, оставляя здесь сообщение - я посмотрю и попробую! Благодарю.

2 ответа

Вы пытались использовать функцию MySQL CONVERT? В зависимости от ваших данных, вы можете обновить таблицы одним оператором, например, "ОБНОВИТЬ mytable SET myfield = CONVERT (myfield USING utf8)".

http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html

Получить все данные, преобразовать их и вставить как:

INSERT INTO table VALUES (id, text)
(1, 'utf8'), (2, 'utf8'), (3, 'utf8')

и т.п.

Идет быстрее, чем цикл php с несколькими INSERT-запросами.

РЕДАКТИРОВАТЬ:

Если вы используете хороший массив, вы можете запустить гладкую систему, чтобы сделать это:

$arr = array('users' => array('user_id', 'text', 'username', 'first_name')));

foreach(array_keys($arr) as $h) {
    $query = mysql_query("SELECT * FROM {$h}");
    while($row = mysql_fetch_object($query)) {
        // Loop thingies, utf8_decode then and stuff
    }
    // Then implode them nicely and use above query
}

Скажите, если вам нужно больше примеров кода.

Другие вопросы по тегам