有没有办法从 MySQL 中的 nvarchar 文本字符串中删除所有非数字字符?
我可以使用下面的 select 语句,但是在获取 UPDATE 语句时遇到问题,因此每次插入或更新内容时我都可以在 MySQL 触发器上使用 UPDATE。我需要删除破折号“-”和任何空格,只保留所有数字字符。
这是表结构的示例。
http://sqlfiddle.com/#!2/90668/7/0
包含所有破折号和空格的字段是“locationNumber”。
我为此使用的 Select 语句如下,但无论我如何尝试更新它,都会出现错误。
从测试中选择replace(replace(locationnumber, "", ""),"-","") 作为locationnumber,其中docid>0;
提前谢谢您。
最佳答案
这应该有效:
update test
set locationnumber = replace(replace(locationnumber, ' ', ''), '-', '')
它在您的 SQLFiddle 中起作用(您必须将其放在“构建架构”一侧)。
更新/插入触发器中的语法会有点不同。您必须执行插入/更新之前触发器并具有如下逻辑:
new.locationnumber = replace(replace(old.locationnumber, ' ', ''), '-', '')
您根本不会在触发器中使用update
语句。您可以查看documentation有关触发器语法的更多信息。
关于mysql - MySQL UPDATE 语句从字符串中删除非数字字符的正确语法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17158758/