有人可以给我一个示例,说明如何使用 SQL 命令在邮政编码字段中的破折号“-”之后删除任何内容吗?
例如,更改以下任何一项:
XXXXX-X
XXXXX-
XXXXX-XX
XXXXX-XXXX
对此:
XXXXX
感谢您的示例。我还需要删除数据库中的任何“-”、“-X”、“-XXXX”等实例,以便邮政编码只包含五位数字。有人可以举个例子吗?
鉴于您的字段名为zip
,那么只需执行以下操作:
SELECT SUBSTRING_INDEX(zip, '-', 1) as zip
那会返回你想要的。
要更新表上的数据,您可以执行以下操作:
update table set zip = SUBSTRING_INDEX(zip, '-', 1) where condition = foo
这将只更新匹配某些条件的记录,如果你想更新它们全部删除where
部分
SUBSTRING_INDEX()
您可以使用 MySQL 的方法,而不是使用正则表达式:
SELECT SUBSTRING_INDEX(zip_code, '-', 1) FROM your_table
编辑(以支持更新)
UPDATE your_table SET zip_code = SUBSTRING_INDEX(zip_code, '-', 1);
我建议创建第二列,也许zip_code_short
并运行SET zip_code_short =
而不是覆盖主要数据 - 只是为了确保它不会首先导致任何错误(如果可行)。