Trim functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wouter W

Wouter W

10/10/2012 09:29:10
Quote Anchor link
goedemorgen,

in een Mysql kolom heb ik zowel links als rechts van de celinhoud meerdere spaties staan. nu dacht ik dat ik met de functie TRIM die spaties zou kunnen weg halen.
ik heb deze code gebruikt in PHPMyAdmin:

UPDATE trials set code = TRIM(code);

het resultaat is dat hij 0 rijen heeft ge-update. Weet iemand waar dat aan kan liggen?
 
PHP hulp

PHP hulp

23/12/2024 15:00:18
 
Chris PHP

Chris PHP

10/10/2012 09:32:49
Quote Anchor link
kijk even naar de originele syntax.

Link naar de MySQL Documentatie
 
Wouter W

Wouter W

10/10/2012 09:35:56
Quote Anchor link
bedankt, dat had ik al gedaan. maar daar kom ik niet uit, vandaar mijn vraag hier. ook als ik dit uitvoer, blijven er 'witruimtes':

select TRIM(code) from trials
of
select TRIM(code from trials)
 
Chris PHP

Chris PHP

10/10/2012 09:41:09
Quote Anchor link
En wat als je dit doet?

SELECT code FROM trails TRIM('code')

of

SELECT code FROM trails SELECT TRIM(BOTH ' ' FROM 'code')
 
Ward van der Put
Moderator

Ward van der Put

10/10/2012 09:45:07
Quote Anchor link
TRIM() verwijdert wel spaties maar geen carriage returns en line feeds, mogelijk ligt het daaraan. Probeer het eens met \r, \n en \r\n in REPLACE() — even aangenomen dat je die karakters niet nodig hebt, uiteraard.
 
Wouter W

Wouter W

10/10/2012 09:54:01
Quote Anchor link
@Chris, als ik deze code uitvoer in PHPMyadmin, krijg ik in beiden gevallen een syntax error

@Ward, misschien is het even handig dat ik vermeld dat ik een beginner ben. ik weet niet wat die stukjes code doen. \n is spatie?
 
Chris PHP

Chris PHP

10/10/2012 09:56:22
Quote Anchor link
Wouter W op 10/10/2012 09:54:01:
@Chris, als ik deze code uitvoer in PHPMyadmin, krijg ik in beiden gevallen een syntax error

@Ward, misschien is het even handig dat ik vermeld dat ik een beginner ben. ik weet niet wat die stukjes code doen. \n is spatie?


\n is newline
\t is tab

Sorry voor mijn waardeloze syntax ;) ik dacht alleen ff mee, ben helaas nu niet in staat om zelf voor je mee te testen!
 
Wouter W

Wouter W

10/10/2012 10:03:14
Quote Anchor link
no prob Chris, ben blij met alle hulp!
 
Ward van der Put
Moderator

Ward van der Put

10/10/2012 10:10:21
Quote Anchor link
Als een veld bijvoorbeeld eindigt met:

[spatie][spatie][regeleinde]

dan heb je achtereenvolgens drie strings (even tussen aanhalingstekens gezet):

' '
' '
'\r\n'

De twee spaties worden niet door TRIM() verwijderd, doordat het veld eindigt op de twee karakters carriage return (\r) en new line (\n) voor een regeleinde. Deze karakters kun je verwijderen met:

REPLACE(veld, '\n', '')
REPLACE(veld, '\r', '')

En inderdaad voor een tab ook \t:

REPLACE(veld, '\t', '')
Gewijzigd op 10/10/2012 10:22:30 door Ward van der Put
 
Wouter W

Wouter W

10/10/2012 10:30:14
Quote Anchor link
geweldig, heldere uitleg. hoe kan ik er achter komen wat voor karakter er in mijn databaseveld staat? want dan weet ik ook hoe ik het moet replacen, toch?
 
Ward van der Put
Moderator

Ward van der Put

10/10/2012 10:34:04
Quote Anchor link
Voor de tab \t bijvoorbeeld:

SELECT *
FROM trials
WHERE code LIKE '%\t%'

Dit kun je herhalen met \r en \n.
 
John D

John D

10/10/2012 10:43:45
Quote Anchor link
Quote:
geweldig, heldere uitleg. hoe kan ik er achter komen wat voor karakter er in mijn databaseveld staat? want dan weet ik ook hoe ik het moet replacen, toch?

Met de MySQL functie ascii() kan je eventueel zoeken welke ascii waarde je mee te maken hebt. SELECT code,ASCII(substr(code,1,1))as 'ascii value' ....
Gewijzigd op 10/10/2012 10:44:38 door John D
 
Wouter W

Wouter W

10/10/2012 11:31:40
Quote Anchor link
Bedankt voor alle hulp. Het ging uiteindelijk om tabs. Ik heb dit kunnen corrigeren met:

update trials set code = replace(code,'\t','');

Dit probleem is ontstaan doordat ik een Excel sheet had met data. In die sheet ben ik de insert regel gaan creeren en daarna uitgevoerd in PHPMyadmin. Hierdoor zijn de tabs erbij gekomen.
Als ik nog een vervolg vraag mag stellen, bestaat er een makkelijkere manier om een kolom of kolommen uit Excel makkelijk te inserten in een database?
 
Ward van der Put
Moderator

Ward van der Put

10/10/2012 13:03:32
Quote Anchor link
Op het tabblad Import of Importeer van phpMyAdmin vind je opties voor het importeren van Excel-bestanden. Lukt het daarmee niet, dan kun je in Excel een CSV-bestand opslaan; als je aansluitend bij het importeren van CSV in phpMyAdmin de juiste scheidingstekens voor rijen en kolommen opgeeft, zitten ze niet meer in de weg in de data.
 
Wouter W

Wouter W

10/10/2012 13:13:50
Quote Anchor link
Bedankt, daar ga ik is mee stoeien!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.