2014-05-23 51 views
-1

我需要一些SQL幫助。我需要改變一些線路中的數據庫一樣SQL更改值如果小於X

僞代碼:

SELECT * FROM tablename WHERE value1->.length <=4 AND CHANGE value to 0value1 

大部分的線路有5個字符的長度。我需要在長度爲4個字符的所有值前添加一個「0」。

任何人都可以幫忙!謝謝!!!

+1

從「UPDATE」開始怎麼樣? – zerkms

+2

請告訴我,您不要將數字存儲爲字符串,並且想要添加前導零。 –

+0

不 - 這是一個int – Dublay

回答

1

試試這個

UPDATE tablename 
SET value1 = concat(0,value1) 
WHERE length(value1)=4 
+0

對不起,沒有行編輯。 – Dublay

+0

@Dublay什麼是value1的數據類型? – Sadikhasan

+0

value1數據類型爲int – Dublay

1

試試這個 update tablename set value= concat(0,value1) where CHAR_LENGTH(value1)<=4

+0

@jeans與我的回答有什麼不同 – Sadikhasan

+0

@Sadikhasan我使用CHAR_LENGTH,你的寫作速度更快! – Jens

+0

這不行,對不起。沒有行編輯。 – Dublay

1

只是另一種方法/理念爲這個(未經測試,因爲在移動!):

UPDATE tablename 
SET value1 = RIGHT(CONCAT('00000', value1), 5) 
WHERE LENGTH(value1) < 5 


這也將填補只有0/1/2/3的字符。
SQLFiddle

+0

mmmm.sorry。在這種情況下沒有行編輯。 – Dublay

+0

@Dublay我爲此添加了一個SQLFiddle,也許它會幫助你。否則,你將不得不在你的開放文章中添加一些信息,比如你的表結構如何,例如數據等等。 – seph

+0

@seph數據類型value1是int,那麼如何連接前導零 – Sadikhasan