0

有没有办法从 MySQL 中的 nvarchar 文本字符串中删除所有非数字字符?

我有点让它与以下 select 语句一起使用,但我在获取 UPDATE 语句时遇到问题,因此我可以在每次插入或更新某些内容时在 MySQL 触发器上使用 UPDATE。我需要删除破折号“-”和任何空格,只留下所有数字字符。

这是表结构的示例。

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

包含所有破折号和空格的字段是“locationNumber”。

我用于此的 Select 语句如下,但无论我如何尝试更新它,我都会收到错误。

从测试中选择替换(替换(位置编号,“”,“”),“-”,“”)作为位置编号,其中docid> 0;

先感谢您。

4

1 回答 1

0

这应该有效:

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

它在您的 SQLFiddle 中执行(您必须将其放在“构建模式”端)。

更新/插入触发器中的语法会有些不同。您必须执行插入/更新前触发器并具有如下逻辑:

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

update您根本不会在触发器中使用语句。您可以查看文档以获取有关触发器语法的更多信息。

于 2013-06-18T01:59:39.043 回答