2

有人可以给我一个示例,说明如何使用 SQL 命令在邮政编码字段中的破折号“-”之后删除任何内容吗?

例如,更改以下任何一项:

XXXXX-X
XXXXX-
XXXXX-XX
XXXXX-XXXX

对此:

XXXXX

感谢您的示例。我还需要删除数据库中的任何“-”、“-X”、“-XXXX”等实例,以便邮政编码只包含五位数字。有人可以举个例子吗?

4

2 回答 2

4

鉴于您的字段名为zip,那么只需执行以下操作:

SELECT SUBSTRING_INDEX(zip, '-', 1) as zip

那会返回你想要的。

要更新表上的数据,您可以执行以下操作:

update table set zip = SUBSTRING_INDEX(zip, '-', 1) where condition = foo

这将只更新匹配某些条件的记录,如果你想更新它们全部删除where部分

于 2012-09-14T17:17:31.237 回答
1

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 =而不是覆盖主要数据 - 只是为了确保它不会首先导致任何错误(如果可行)。

于 2012-09-14T17:17:48.793 回答