it-swarm.com.de

so schneiden Sie führende Nullen aus alphanumerischem Text in der mysql-Funktion

Welche MySQL-Funktionen gibt es (falls vorhanden), um führende Nullen aus einem alphanumerischen Textfeld zu entfernen? 

Ein Feld mit dem Wert "00345ABC" müsste "345ABC" zurückgeben.

55
Sean

Sie suchen nach der Funktion trim () .

Okay, hier ist dein Beispiel

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

SPITZE:

Wenn Ihre Werte rein numerisch sind, können Sie auch einfaches Gießen verwenden, z. 

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

wird eigentlich in konvertieren 

SELECT * FROM my_table WHERE accountid = 322994

das ist in vielen Fällen eine ausreichende Lösung und ich glaube auch, dass die Leistung effektiver ist. (Warnungswerttyp wechselt von STRING zu INT/FLOAT).

In einigen Situationen kann die Verwendung einiger Casting-Funktionen auch ein Weg sein, um zu gehen:

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

14
lubosdz

Wenn Sie eine ganze Spalte einer Tabelle aktualisieren möchten, können Sie verwenden

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

Ich glaube, dass Sie damit am besten aufgehoben sind:

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

entfernen Sie einfach Leerzeichen zwischen TRIM ( LEADING 

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

einfach perfekt:

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

Mit TRIM können Sie die nachfolgenden, führenden oder alle Zeichen entfernen. Einige Beispiele zur Verwendung der TRIM-Funktion in MySQL:

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'

Wenn Sie nur eine bestimmte Anzahl von führenden/nachgestellten Zeichen entfernen möchten, schauen Sie sich die Funktionen LINKS/RECHTS mit der Kombination der Funktionen LEN und INSTR an

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

Das funktioniert auch richtig

0
sanduniYW