UPDATE REPLACE

evolution

Новичок
UPDATE REPLACE

Не работает запрос:

PHP:
UPDATE `posts` SET `post`=(REPLACE(`post`, '$orig', '$new'))  WHERE `post` LIKE '%orig%';
точнее ничего не делает...
При этом

PHP:
SELECT `post` FROM `posts` WHERE `post` LIKE '%$orig%';
возвращает более 10 тысяц записей...
В чём может быть проблема?
 

Gas

может по одной?
ну почему проверяешь не то что не работает, а отфонаря - LIKE '%orig%' и LIKE '%$orig%', как это понимать ?
 

evolution

Новичок
Это опечатка на форуме =)
Сорри...

В оригинале всё норм

-~{}~ 16.11.07 15:39:

На всякий случай...
Это тоже не работает:

UPDATE posts SET post=(REPLACE (post, '%$orig%', '%$new%'))
 

Gas

может по одной?
like - case insensetive
replace - case sensetive
может в этом дело.

а на самом деле лучший совет в данном случае - debug, простейшая же ситуация.
 

evolution

Новичок
Gas
нет не в регистре дело...
даже банально забиваю в phpmyadmin
SELECT * FROM `posts` WHERE `post` LIKE '%во%'

Показывает записи 0 - 29 (10,001 всего, Запрос занял 0.0103 сек)


А если запрос
UPDATE `posts` SET post = ( REPLACE( post, '%во%', '%vo%' ) );
то
Затронутые ряды: 0 (Запрос занял 0.5961 сек)


и не ошибок не ворнингов....
 

evolution

Новичок
Wicked
По аналогии делал =)

Спасибо всем... разобрался =)

-~{}~ 16.11.07 16:20:

Wicked
тогда такой вопрос возникает
мне нужно заменить слово "во" на "vo"
При этом оставить "во-первых" и т.д. в оригинале....
Как быть?

Запрос:

UPDATE posts SET post=(REPLACE (post, 'во', 'vo')) WHERE `post` LIKE '% во %';

меняет всё подряд...
 

Wicked

Новичок
post=(REPLACE (post, ' во ', ' vo '))

не надо путать то, что ты делаешь с найденными строками с тем, какие строки ты ищешь.
 
Сверху