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.
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:
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%';
Bundan daha iyi olacağına inanıyorum:
SELECT TRIM(LEADING '0' FROM myField)
sadece TRIM ( LEADING
use arasındaki boşluğu kaldırın.
SELECT * FROM my_table WHERE TRIM(LEADING '0' FROM accountid ) = '00322994'
tek kelimeyle mükemmel:
SELECT TRIM(LEADING '0' FROM myfield) FROM table
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
SELECT TRIM(LEADING '0' FROM *columnName*) FROM *tableName* ;
Bu da düzgün çalışır