Замена во всех полях значения (нужна помощь)

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.526
Реакции
121
В таблице есть поле "title". В некоторых записях есть значения, например, монитор "к!". Нужно заменить "к!" на "к?".
Подскажите, пожалуйста, как это сделать в MySQL быстро во всех записях, без скрипта, с помощью phpMyAdmin
 
Вот нашел...
UPDATE таблица SET поле = REPLACE (поле, 'текст для замены', 'на что заменять');
Правильно получается в моем случае?
PHP:
UPDATE 'news' SET title = REPLACE (title,'к!','к?');
Таблица new
Поле title
 
дак это будет при условии, что поле равно "к!", а у меня title текст и данные буквы. Нужно найти где включены эти буквы, а не единственные.
Регуляркой, наверно? Но как не знаю...
И попробовал, не получилось. Пишет ошибку:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''news' SET title = REPLACE (title, 'м?', 'м2')' at line 1
"М?" кодируется в "м?". Как этого избежать?
 
дак это будет при условии, что поле равно "к!", а у меня title текст и данные буквы. Нужно найти где включены эти буквы, а не единственные.
Регуляркой, наверно? Но как не знаю...
И попробовал, не получилось. Пишет ошибку:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''news' SET title = REPLACE (title, 'м?', 'м2')' at line 1
"М?" кодируется в "м?". Как этого избежать?
Я в таких случаях поступаю так:
1. В phpMyAdmin таблица=>экспорт
2. Notepad++ Найти и заменить
3. В phpMyAdmin таблица=>импорт
 
Чуть измените запрос добавив WHERE
UPDATE таблица SET поле = REPLACE (поле, 'текст для замены', 'на что заменять') WHERE title LIKE '%текст для замены%'
А вообще приведите пару примеров более близких к реальности значений и на что их надо заменить, возможно что-то неправильно понимаю
 
дак это будет при условии, что поле равно "к!", а у меня title текст и данные буквы. Нужно найти где включены эти буквы, а не единственные.
Регуляркой, наверно? Но как не знаю...
И попробовал, не получилось. Пишет ошибку:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''news' SET title = REPLACE (title, 'м?', 'м2')' at line 1
"М?" кодируется в "м?". Как этого избежать?
Проблемы с кодировкой так как они не выставлены, выставить можно так :
SET character_set_results = 'utf8'
character_set_client = 'utf8' - у вас похоже это не выставлено как надо
character_set_connection = 'utf8'
character_set_database = 'utf8'

И Заменяйте как сказали выше через replace. все должно сработать.
 
попробуйте так (вместо нескольких запросов один)
SET NAMES utf8;
UPDATE таблица SET поле = REPLACE (поле, 'текст для замены', 'на что заменять') WHERE title LIKE '%текст для замены%';
 
Назад
Сверху