2

SQLコマンドを使用して、郵便番号フィールドのダッシュ「-」の後に何かを削除する方法の例を誰か教えてもらえますか?

たとえば、次のいずれかを変更します。

XXXXX-X
XXXXX-
XXXXX-XX
XXXXX-XXXX

これに:

XXXXX

例をありがとう。また、データベース内の「-」、「-X'、「-XXXX」などのインスタンスを削除して、郵便番号が 5 桁だけになるようにする必要があります。誰かがこの例を含めることができますか?

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);

メインデータを上書きする代わりに、おそらく2番目の列を作成してzip_code_short実行することをお勧めしSET zip_code_short =ます-最初にエラーが発生しないようにするためです(可能な場合)。

于 2012-09-14T17:17:48.793 に答える