任何人都可以帮助我使用SQL命令来更新列,如下例所示。
IP : 192.168.010.001
我需要删除零并更新列如下:
IP : 192.168.10.1
答案 0 :(得分:1)
如果您需要删除最后四个字符,那么大多数数据库都支持LEFT()
:
update table t
set col = left(col, length(col) - 4);
length()
函数的名称在数据库之间也有所不同(通常为len()
或length()
)。可以使用substr()
/ substring()
代替left()
。
编辑:
啊,杰弗里指出,以上是不正确的解释。我误读了数字。有一种方法可以做到这一点,它与数据库无关。一般来说,一段时间后不会超过两个零(如果有三个,那么你可能想要第三个)。所以:update table t
set ip = replace(replace(ip, '.0', '.'), '.0', '.')
where ip like '%.0%';
答案 1 :(得分:0)
您正在使用哪个数据库,如果您使用的是Sybase,可以尝试str_replace并使用替换模式,例如' .0'或' .00'到'' 。 查询可能是这样的
`update X set Y=str_replace(Y,'.0','.') where Y like '%.0%' `
和
`update X set Y=str_replace(Y,'.00','.') where Y like '%.00%' `
答案 2 :(得分:0)
两次简单替换也可以起作用:
replace(replace('192.168.010.001','.0','.'),'.0','.')
或
IP_Field = replace(replace(IP_Field,'.0','.'),'.0','.')