web-dev-qa-db-ja.com

スペースを削除するためのMYSQL更新クエリ

私のクライアントの1人が、アプリケーションの1つにいくつかのアカウント番号を追加しました。取引を行おうとすると、口座番号の末尾にスペースがあるため、取引は失敗します。 Mysqlデータベースのレコードを更新して、クライアントを削除したりアカウントを再追加したりせずに、最後にスペースがあるアカウントからすべてのスペースを削除するにはどうすればよいですか?テーブルの構造は次のとおりです。

クエリまたはmysqlの機能を構造化する方法がわからない

アカウントテーブル:

the account table:
CUSTOMER_ID              
ACCOUNTNUMBER        
TXT                   
CURRENCY_NO            
USER_ID                  
ACTIVE_FLAG               
USER_DATE                 
ben_bic_address          
int_bic_address 

the admin table

  ADM_USER_ID           
  LOCATION_CD          
  LANG                
  USER_NAME              
  USER_LOGIN            
  USER_PASSWORD          
 GROUP_CODE            
 USER_ID              
  USER_DATE               
  ACTIVE                 
 COUNTER                
 connected              
 IP

And the customer table:

CUSTOMER_ID               
COUNTRY_NO              
USER_ID                   
CUSTOMER_NAME 
ACTIVE_FLAG
12
andreas

特定の顧客のすべてのアカウントをRTRIM()する必要がある場合は、次のようにUPDATEステートメントでJOINを使用できます。

UPDATE
    accounts_table
INNER JOIN
    customers_table ON (accounts_table.user_id = customers_table.user_id)
SET 
    accountnumber = RTRIM(accountnumber)
WHERE
    customers_table.customer_id = 'customer id';

Account_tableに多くのレコードがなく、すべてのaccountnumber値が確実にトリムされるようにする場合は、次のようにすべてのレコードにトリムを適用できます。

UPDATE
    accounts_table
SET 
    accountnumber = TRIM(accountnumber);
27
Daniel Vassallo

TRIMを使用して更新します。

これを使用するだけでうまくいくはずです。

UPDATE accountTable
SET ACCOUNTNUMBER = RTrim(ACCOUNTNUMBER)
4
Layke

外部キー制約がある場合は、変更を行うときにそれらを削除する必要がある場合があります。

次のクエリは、accountsテーブルのレコードを変更します。

update accounts set accountnumber = rtrim(accountnumber);
0
a'r