私のクライアントの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
特定の顧客のすべてのアカウントを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);
TRIMを使用して更新します。
これを使用するだけでうまくいくはずです。
UPDATE accountTable
SET ACCOUNTNUMBER = RTrim(ACCOUNTNUMBER)
外部キー制約がある場合は、変更を行うときにそれらを削除する必要がある場合があります。
次のクエリは、accountsテーブルのレコードを変更します。
update accounts set accountnumber = rtrim(accountnumber);