2014-05-23 48 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