Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to concat_ws multiple fields and remove duplicate separators for empty slots

When you CONCAT_WS(' ',field1,field2,field3) in MySQL and if one of the fields is empty, not null, you get multiple separators.

An example can be:

John[space][space][space]Doe[space]III.

How can I make sure there is only one separator.

like image 358
Pentium10 Avatar asked Oct 13 '10 14:10

Pentium10


1 Answers

Do it like this:

CONCAT_WS(' ', NULLIF(field1, ''), NULLIF(field2, ''), NULLIF(field3, ''));

CONCAT_WS will skip any null values, and by using NULLIF any empty ones too.

Note: You can't regex replace. MySQL does not support it.

like image 169
Alin Purcaru Avatar answered Oct 30 '22 03:10

Alin Purcaru