2012-12-20 28 views
10

Ich habe ein Feld in einer MySQL-Datenbank, die ein varchar (255) ist. Ich habe bei trim() sieht entfernen führenden und nachfolgenden Leerzeichen, aber es scheint nur Leerzeichen zu verarbeiten, nicht Tabulator:Wie Tabs am Anfang und Ende von Varchar-Feld in MySQL zu entfernen?

UPDATE mytable SET textfield = TRIM(textfield); 

Weiß jemand, wie man auch Tabs abzustreifen Anfang und am Ende eines Feldes ?

Antwort

24

Sie können weiterhin die TRIM Funktion verwenden und festlegen, welches Zeichen getrimmt werden:

UPDATE mytable SET email = TRIM(CHAR(9) FROM TRIM(email)); 
+0

'BOTH' wird angenommen und muss nicht angegeben werden. +1 seit dem Update von OP. – Kermit

+0

@njk Danke, du hast recht ... das 'BEIDE' ist unnötig ... –

+0

@MichaelFredrickson Danke! – Ray

8

Haben Sie das versucht?

UPDATE mytable SET email = REPLACE(TRIM(email), CHAR(9), '') 
+0

+1 netter Job! 6 Sekunden voraus! – davidethell

+1

Wird das nicht alle Tabs in diesem Feld ersetzen? – raina77ow

+0

Ich habe auch über Tabs in der Mitte nachgedacht ... aber wiederum enthält eine E-Mail-Adresse normalerweise keine Tabs. –

3

Sie können entweder mit \ t oder CHAR (9) verwenden ersetzen:

UPDATE mytable SET email = REPLACE(TRIM(email), '\t', ''); 
+0

Ich möchte nicht alle Registerkarten ersetzen, nur eine am Anfang und eine am Ende ... nicht in Mitte. Es tut uns leid, wenn die E-Mail des Feldnamens Sie dazu gebracht hat – Ray

2

Die Funktion TRIM bietet eine gute Lösung für Ihr Problem. Verwenden Sie einfach einige wie oben:

UPDATE yourtable SET your_field = TRIM(CHAR(9) FROM TRIM(your_field)); 
Verwandte Themen