我有三个字段的mysql表
host ipaddress date
---- --------- -----
server1.abc.com 10.1.1.1 2011-10-18 22:45:16
server1 10.1.1.1 2011-12-19 21:56:46
server2 11.1.1.1 2011-12-18 21:56:46
server2.abc.com 11.1.1.1 2011-12-17 21:56:46
Here,
host --> varchar
ipaddress --> varchar
date ---> datetime
我想仅使用主机名替换所有FQDN值。 我的输出应如下所示:
host ipaddress date
---- --------- -----
server1 10.1.1.1 2011-10-18 22:45:16
server1 10.1.1.1 2011-12-19 21:56:46
server2 11.1.1.1 2011-12-18 21:56:46
server2 11.1.1.1 2011-12-17 21:56:46
我写了以下内容:
UPDATE table1 SET host = TRIM(TRAILING '.' FROM host)
答案 0 :(得分:0)
您可以使用REGEXP_REPLACE
(如果您的MySQL / MariaDB支持此功能)或(经典)SUBSTRING
与LOCATE
结合使用:
UPDATE table1 SET host = SUBSTRING(host, 1, LOCATE('.', host)-1)
UPDATE table1 SET host = REGEXP_REPLACE(host, '\\..+', '')
答案 1 :(得分:0)
您可以找到第一个出现的点,然后执行左侧函数来截断字符串。
update yourTable
set host = left(host,locate('.',host)-1);