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
部分を削除します
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 =
ます-最初にエラーが発生しないようにするためです(可能な場合)。