提问人:Sean 提问时间:9/19/2008 更新时间:3/11/2021 访问量:113806
如何在MySQL函数中从字母数字文本中修剪前导零
how to trim leading zeros from alphanumeric text in mysql function
答:
185赞
Chris Bartow
9/19/2008
#1
您正在寻找 trim() 函数。
好了,这是你的例子
SELECT TRIM(LEADING '0' FROM myfield) FROM table
评论
0赞
Tom Ritter
9/19/2008
++ 特别是 TRIM(LEADING '0' FROM '000345ANB095')
0赞
Peter
5/18/2016
这也适用于多个零吗?
0赞
Aniket Kapse
4/25/2020
select trim(LEADING '0' FROM '00000A')+0 from dual;为什么输出 0 而不是 A?
1赞
Dalendrion
12/23/2020
@AniketKapse 这与输出 0 而不是“A”的原因相同。“A”不是一个数字,但你正在尝试给它添加一个数字。因此,它将两个参数都转换为数字。 不表示数字,因此将其转换为 0。阅读有关类型转换的MySQL文档。SELECT 'A' + 0;
A
7赞
JustinD
9/19/2008
#2
我相信你最好这样做:
SELECT TRIM(LEADING '0' FROM myField)
4赞
Jaime
8/8/2009
#3
简直完美:
SELECT TRIM(LEADING '0' FROM myfield) FROM table
4赞
Hemali
5/31/2012
#4
只需在使用之间删除空间即可TRIM ( LEADING
SELECT * FROM my_table WHERE TRIM(LEADING '0' FROM accountid ) = '00322994'
评论
0赞
Penguin
7/26/2019
棒!你节省了我的时间!
18赞
lubosdz
1/4/2013
#5
提示:
如果您的值是纯数值,您也可以使用简单的转换,例如
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
评论
0赞
mpen
2/21/2014
我认为这是一种更常见的转换为 int 的方法,而不是+ 0
* 1
0赞
Septian Primadewa
12/8/2015
如果值类似于“000000”,这将非常有用。
17赞
theBuzzyCoder
2/2/2016
#6
如果要更新表的一整列,可以使用
USE database_name;
UPDATE `table_name` SET `field` = TRIM(LEADING '0' FROM `field`) WHERE `field` LIKE '0%';
5赞
cacti5
12/6/2016
#7
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 函数的组合
7赞
sanduniYW
3/2/2018
#8
SELECT TRIM(LEADING '0' FROM *columnName*) FROM *tableName* ;
这也正常工作
下一个:什么原因导致需要修复表?
评论