it-swarm-tr.com

mysql fonksiyonunda alfa nümerik metinden baştaki sıfırların nasıl kırpılacağı

Alfanümerik bir metin alanından baştaki sıfırları kesmek için (varsa) hangi mysql işlevleri var? 

"00345ABC" değeri olan alanın "345ABC" değerini döndürmesi gerekir.

55
Sean

trim () işlevi 'yi arıyorsunuz.

Tamam, işte örnek

SELECT TRIM(LEADING '0' FROM myfield) FROM table
122
Chris Bartow

BAHŞİŞ:

Değerleriniz tamamen sayısal ise, basit dökümleri de kullanabilirsiniz; 

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

aslında dönüşecek 

SELECT * FROM my_table WHERE accountid = 322994

bu birçok durumda yeterli bir çözüm ve aynı zamanda performansın daha etkili olduğuna inanıyorum. (uyarı - değer türü STRING’den INT/FLOAT’a değişir).

Bazı durumlarda, bazı döküm işlevlerini kullanmak, aynı zamanda bir yol gösterebilir:

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

14
lubosdz

Bir tablonun tüm sütununu güncellemek istiyorsanız,

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

Bundan daha iyi olacağına inanıyorum:

SELECT TRIM(LEADING '0' FROM myField)
6
JustinD

sadece TRIM ( LEADING use arasındaki boşluğu kaldırın. 

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

tek kelimeyle mükemmel:

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

TRIM, sondaki, baştaki veya tüm karakterleri kaldırmanıza izin verir. MySQL'de TRIM işlevinin kullanımına ilişkin bazı örnekler:

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'

Yalnızca belirli miktarda satır/satır karakterini kaldırmak istiyorsanız, LEN ve INSTR işlevlerinin birleşimiyle LEFT/RIGHT işlevlerine bakın

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

Bu da düzgün çalışır

0
sanduniYW