如何在mysql函数中修剪字母数字文本中的前导零

时间:2008-09-18 21:04:12

标签: mysql

有哪些mysql函数(如果有的话)从字母数字文本字段修剪前导零?

值为“00345ABC”的字段需要返回“345ABC”。

8 个答案:

答案 0 :(得分:129)

您正在寻找trim() function

好的,这是你的例子

SELECT TRIM(LEADING '0' FROM myfield) FROM table

答案 1 :(得分:14)

提示:

如果您的值纯粹是数值,您也可以使用简单的转换,例如

SELECT * FROM my_table WHERE accountid = '00322994' * 1

实际上会转换为

SELECT * FROM my_table WHERE accountid = 322994

这在很多情况下是充分的解决方案,而且我相信性能更有效。 (警告 - 值类型从STRING更改为INT / FLOAT)。

在某些情况下,使用某些强制转换功能可能也是一种方法:

http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

答案 2 :(得分:8)

如果要更新表格的整个列,可以使用

USE database_name;
UPDATE `table_name` SET `field` = TRIM(LEADING '0' FROM `field`) WHERE `field` LIKE '0%';

答案 3 :(得分:6)

我相信你最喜欢这个:

SELECT TRIM(LEADING '0' FROM myField)

答案 4 :(得分:4)

简单完美:

SELECT TRIM(LEADING '0' FROM myfield) FROM table

答案 5 :(得分:4)

TRIM将允许您删除尾随,前导或所有字符。关于在MySQL中使用TRIM函数的一些例子:

select trim(myfield) from (select '   test' myfield) t;
>> 'test'
select trim('0' from myfield) from (select '000000123000' myfield) t;
>> '123'
select trim(both '0' from myfield) from (select '000000123000' myfield) t;
>> '123'
select trim(leading '0' from myfield) from (select '000000123000' myfield) t;
>> '123000'
select trim(trailing '0' from myfield) from (select '000000123000' myfield) t;
>> '000000123'

如果您只想删除一定数量的前导/尾随字符,请查看LEFT / RIGHT函数,结合LEN和INSTR函数

答案 6 :(得分:3)

删除TRIM ( LEADING之间的空格 使用

SELECT * FROM my_table WHERE TRIM(LEADING '0' FROM accountid ) = '00322994' 

答案 7 :(得分:1)

SELECT TRIM(LEADING '0' FROM *columnName*) FROM *tableName* ;

这也正常工作