Zdaję sobie sprawę, że jest to Necro, ale warto zauważyć, co następuje:
Zarówno CONCAT
& CONCAT_WS
są w dużej mierze równoważne.
Jednak najważniejszą różnicą jest to, że CONCAT
może nie zwrócić oczekiwanych wyników w przypadkach, gdy dowolne z wejść ma wartość NULL. W takich przypadkach CONCAT
zwróci wartość NULL, natomiast CONCAT_WS
pominie wartości NULL i nadal zwróci ciąg znaków z wynikiem pozostałych danych wejściowych. Oznacza to, że w większości przypadków prawdopodobnie będziesz chciał użyć CONCAT_WS
.
Poniżej są równoważne z wyjątkiem gdzie jeden lub więcej wejścia są NULL:
// Result: LastName, FirstName, MiddleName
CONCAT(LastName, ', ', FirstName, ', ', MiddleName)
// Result: LastName, FirstName, MiddleName
CONCAT_WS(', ', LastName, FirstName, MiddleName)
W przypadkach, w których chcesz używać CONCAT_WS
z różnych „separatorów” wystarczy ustawić pierwsze wejście na pusty ciąg znaków:
// Result: LastName, FirstName (MiddleName)
CONCAT_WS('', LastName, ', ', FirstName, ' (', MiddleName, ')')
Dziękuję, między pracą a pracą domową myślę, że mój mózg wyjechał na dzień !! .. tak prosta odpowiedź nie wiem, dlaczego nie myślałem o tym. lol .. –
@ TommyCombs Pamiętaj, aby flagować odpowiedzi, są one podstawą do tego, co działa ranking, zgłaszanie odpowiedzi i przyczynianie się do przyznawania punktów, i to właśnie motywuje ludzi do kontynuowania powrotu do S-O –