How To Split Single Row Into Multiple Rows In Mysql

In some scenarios, you might need to transform data from a single row in a MySQL table into multiple rows. This can be the case when dealing with a large dataset that you need to restructure, or if you’re simply trying to display the data in a more readable and usable format.

In this tutorial, we’ll learn how to split a single row into multiple rows in MySQL using various techniques.

Step 1: Create a Sample Table

First, let’s create a sample table to demonstrate how the splitting can be achieved. Here’s a simple table containing some sales data:

Now, let’s insert some data into the table:

To see the data we have in the sales_data table, use this SQL query:


Step 2: Split the Single Row into Multiple Rows using a JOIN

Next, we’ll use a technique that employs a JOIN operation to split a single row into multiple rows. In this specific case, we’ll split the Desktop row into two rows because it has a quantity value of 2.

Here’s the SQL query to achieve this:


As you can see, the Desktop row has been split into two rows, each with a quantity value of 1.

Full Code


In this tutorial, we learned various techniques to split a single row into multiple rows in MySQL. Using temporary tables and JOIN operations, you can restructure your data according to your specific requirements. Keep in mind that this method can also be extended to handle more complex scenarios and tables with more columns.