Замена косых черт в запросе mySQL REPLACE

Все, что я хочу сделать, — это заменить случайный удар (/) в одном из моих полей таблицы. Следующий код не работает:

UPDATE table SET numberClean = REPLACE(REPLACE(numberNotClean, '.', ''), '\/', '');

В настоящее время он выполняется в моем PHP-скрипте, все остальные мои запросы замены (которые также экранируют символы) работают правильно.

Любая помощь будет принята с благодарностью, спасибо!

0

Решение

Прямые косые черты не нужно избегать

UPDATE myTable SET fieldName=REPLACE(fieldName,'/','')

Ваш текущий код заменит любое вхождение \/ в строке. Поскольку косую черту не нужно экранировать, MySQL считает, что \/ как просто строка без какого-либо особого значения.

Руководство

3

Другие решения

UPDATE table SET numberClean = REPLACE(numberClean, '/', '');
2

Слеш в MySQL не имеют особого значения, что означает, что вы не должны избегать их:

UPDATE `table`
SET `numberClean` = REPLACE(
REPLACE(
`numberNotClean`,
'.',
''
),
'/',
''
);
1

Вы пробовали это с

UPDATE table SET numberClean = REPLACE(REPLACE(numberNotClean, '.', ''), '/', '');
1
По вопросам рекламы [email protected]