簡體   English   中英

如何使用MySQL REGEXP從郵政編碼字段中刪除-XXXX?

[英]How to remove -XXXX from Zip Code field using MySQL REGEXP?

有人可以給我一個示例,說明如何使用SQL命令刪除郵政編碼字段中的破折號“-”后的所有內容嗎?

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

XXXXX-X
XXXXX-
XXXXX-XX
XXXXX-XXXX

對此:

XXXXX

感謝您的示例。 我還需要刪除數據庫中“-”,“-X”,“-XXXX”等的所有實例,因此郵政編碼僅包含5位數字,有人可以提供此示例嗎?

假設您的字段名為zip ,則只需執行以下操作:

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

那會返回你想要的。

要更新表上的數據,您可以執行以下操作:

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

這將只更新符合某些條件的記錄,如果要全部更新,則刪除where部分

除了使用正則表達式,還可以使用MySQL的SUBSTRING_INDEX()方法:

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 =而不是覆蓋主數據-只是要確保它不會首先引起任何錯誤(如果可行)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM