Replace() (MySQL)
Versie door Jeroen Strompf (overleg | bijdragen) op 2 mei 2017 om 15:20 (→Null-waardes & select queries)
De functie replace()
vervangt tekenreeksen.
Syntaxis
replace(bron, van, naar)
Bv.:
select replace ("foobar","foo","boo") boobar
Bv.:
update tbl_root set naamnl05gs = replace(naamnl05gs,'-set','s')
De functie REPLACE() ondersteunt geen wildcards of regex. Dat moet je via een externe tool doen. bv.:
Null-waardes & select queries
NULL-waardes in een select query vervangen door iets handigers:
select ifnull ("hoihallo","leeg!"); -- Output: "hoihallo", want input-argument niet-null en wordt daarom geretourneerd select ifnull (null,"leeg!"); -- Output: "leeg!", want input-argument is null en dan wordt het tweede argument geretourneerd
Null-waardes & exportbestanden
Bij exports naar bestanden worden null-waardes meestal \N en daar kan ik zo weinig mee
select replace(gewicht,isnull,"niet nul") from tbl_sjabloon -- Foutmelding: isnull werkt niet in deze situatie select replace(gewicht,null,"niet nul") from tbl_sjabloon -- Vult alles met null-waardes select replace(ifnull(gewicht,),'\n',"niet nul") from tbl_sjabloon -- Werkt!
De laatste variant werkt: null-waardes zijn nu verdwenen, maar er verschijnen ook geen nieuwe waardes - Sois. Probleem opgelost.
Bronnen
Een streepje is niet altijd een streepje
Er zijn verschillende soorten verbindingsstreepjes. Belangrijk om rekening mee te houden.