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

有哪些 mysql 函数(如果有的话)可以从字母数字文本字段中去掉前导零?

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

105232 次浏览

你要找的是 装饰()功能

好吧,这是你的例子

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

我相信你最好这样做:

SELECT TRIM(LEADING '0' FROM myField)

简单的完美:

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

只需删除 TRIM ( LEADING之间的空间 使用

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

提示:

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

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

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

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

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'

如果只想删除选定数量的前/后字符,请查看 LEN 和 INSTR 函数组合的 LEFT/RIGHT 函数

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

这也正常工作