簡體   English   中英

如何使用 WHERE 子句更新表列?

[英]How to update table column using WHERE clause?

我有一個表格postcode 它有一列postcode ,其中包含 4/5 位整數(即 66770、66670、3090、6660)。 我想運行一個查詢,該查詢在包含 4 位數值的所有字段前添加0 (即,將“6660”更改為“06660”)。 我試過這個查詢,但它說0 rows affected並且沒有進行任何更改。

UPDATE postcode SET postcode = Concat('0', postcode) WHERE CHAR_LENGTH(postcode) = 4;

我做錯了什么嗎?

試試這個: UPDATE postcode SET postcode = REPLACE(postcode, N'____', 0);

在這里,我只是將 4 個字符的所有內容替換為 0(有 4 個下划線)

如果所有記錄都是 4 或 5,則不需要 where 子句和

UPDATE postcode SET postcode = RPAD(TRIM(postcode), 5, '0') 

應該做的工作。 但是,如果您有 3 位數的記錄並且不想更新這些記錄,則需要添加過濾位置

UPDATE postcode 
SET postcode = LPAD(TRIM(postcode), 5, '0') 
WHERE CHAR_LENGTH(TRIM(postcode) = 4;

我正在使用TRIM()以防postcode字段最后有一些空白。

答案是:

UPDATE postcode set postcode = CONCAT('0', postcode) where LENGTH(postcode)=4;

暫無
暫無

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

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