how to concat two columns into one with the existing column name in mysql?
Concatenating Columns in MySQL with Existing Column Names

Learn how to combine data from two or more columns into a single new column in MySQL, while retaining the original column names for clarity and further use.
In MySQL, you often need to combine data from multiple columns into a single, more descriptive column. This is particularly useful for generating full names from first and last names, creating complete addresses, or consolidating various pieces of information for reporting. This article will guide you through the process of concatenating two columns, demonstrating how to assign a meaningful alias to the resulting combined column.
Understanding the CONCAT() Function
The primary function for combining strings in MySQL is CONCAT()
. This function takes two or more string arguments and joins them into a single string. If any argument is NULL
, CONCAT()
returns NULL
. For scenarios where you want to treat NULL
values as empty strings, CONCAT_WS()
(Concatenate With Separator) can be a more suitable alternative, as it ignores NULL
arguments after the separator.
SELECT
column1,
column2,
CONCAT(column1, ' ', column2) AS combined_column
FROM
your_table;
Basic usage of CONCAT() to combine two columns with a space separator.
Concatenating with a Separator and Aliasing
When concatenating columns, it's almost always necessary to include a separator (like a space, comma, or hyphen) between the combined values to ensure readability. After combining, it's crucial to give the new, concatenated column a descriptive alias using the AS
keyword. This alias acts as the column's name in the result set, making it easy to reference in application code or further SQL operations.
flowchart TD A[Start Query] --> B{SELECT column1, column2} B --> C["CONCAT(column1, ' ', column2) AS 'Full Name'"] C --> D[FROM your_table] D --> E[Result Set]
Flowchart illustrating the process of selecting and concatenating columns.
CREATE TABLE employees (
employee_id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100)
);
INSERT INTO employees (first_name, last_name, email) VALUES
('John', 'Doe', 'john.doe@example.com'),
('Jane', 'Smith', 'jane.smith@example.com'),
('Peter', 'Jones', NULL);
SELECT
employee_id,
first_name,
last_name,
CONCAT(first_name, ' ', last_name) AS full_name,
email
FROM
employees;
Example demonstrating column concatenation for 'first_name' and 'last_name' into 'full_name'.
Handling NULL Values with CONCAT_WS()
As mentioned, CONCAT()
returns NULL
if any of its arguments are NULL
. If you want to concatenate strings and ignore NULL
values, CONCAT_WS()
is the function to use. CONCAT_WS()
takes a separator as its first argument, followed by the strings to be concatenated. It will only include non-NULL
strings in the result, separated by the specified separator.
SELECT
employee_id,
first_name,
last_name,
email,
CONCAT_WS(' ', first_name, last_name, email) AS full_details
FROM
employees;
Using CONCAT_WS() to combine multiple columns, gracefully handling NULL values.
CONCAT_WS()
function is particularly useful when dealing with optional fields, such as a middle name or an apartment number, where you don't want a NULL
value to cause the entire concatenated string to become NULL
.