Каков правильный синтаксис для инструкции MySQL UPDATE для удаления нечисловых символов из строки

Есть ли способ удалить все нечисловые символы из текстовой строки nvarchar в MySQL?

Я как бы заставил его работать со следующим оператором select, но у меня возникают проблемы с получением оператора UPDATE, поэтому я могу использовать UPDATE для триггера MySQL каждый раз, когда что-то вставляется или обновляется. Мне нужно удалить тире "-" и любые пробелы и оставить только все числовые символы.

Вот пример структуры таблицы.

http://sqlfiddle.com/#!2/90668/7/0

Поле, содержащее все тире и пробелы, называется «locationNumber».

Оператор Select, который я использовал для этого, выглядит следующим образом, но независимо от того, как я пытаюсь его обновить, я получаю ошибки.

выберите replace(replace(locationnumber, " ", ""),"-","") как locationnumber из теста, где docid>0;

Заранее спасибо.


person user2066533    schedule 18.06.2013    source источник
comment
Итак, вам нужна помощь с удалением нечисловых цифр или с триггером?   -  person peterm    schedule 18.06.2013


Ответы (1)


Это должно работать:

update test
    set locationnumber = replace(replace(locationnumber, ' ', ''), '-', '')

Это происходит в вашем SQLFiddle (вы должны поместить его на сторону «схемы сборки»).

Синтаксис в триггере обновления/вставки будет немного другим. Вам нужно будет выполнить триггер перед вставкой/обновлением и иметь такую ​​логику:

new.locationnumber = replace(replace(old.locationnumber, ' ', ''), '-', '')

Вы бы вообще не использовали оператор update в триггере. Дополнительную информацию о триггере можно найти в документации. синтаксис.

person Gordon Linoff    schedule 18.06.2013