
- Learn MySQL
- MySQL - Home
- MySQL - Introduction
- MySQL - Installation
- MySQL - Administration
- MySQL - PHP Syntax
- MySQL - Connection
- MySQL - Create Database
- MySQL - Drop Database
- MySQL - Select Database
- MySQL - Data Types
- MySQL - Create Tables
- MySQL - Drop Tables
- MySQL - Insert Query
- MySQL - Select Query
- MySQL - Where Clause
- MySQL - Update Query
- MySQL - Delete Query
- MySQL - Like Clause
- MySQL - Sorting Results
- MySQL - Using Join
- MySQL - NULL Values
- MySQL - Regexps
- MySQL - Transactions
- MySQL - Alter Command
- MySQL - Indexes
- MySQL - Temporary Tables
- MySQL - Clone Tables
- MySQL - Database Info
- MySQL - Using Sequences
- MySQL - Handling Duplicates
- MySQL - SQL Injection
- MySQL - Database Export
- MySQL - Database Import
MySQL query to separate and select string values (with hyphen) from one column to different columns
For this, you can use SUBSTRING_INDEX(). Let us first create a table −
mysql> create table DemoTable1962 ( EmployeeInformation text ); Query OK, 0 rows affected (0.00 sec)
Insert some records in the table using insert command −
mysql> insert into DemoTable1962 values('101-John-29'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1962 values('102-David-35'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1962 values('103-Chris-28'); Query OK, 1 row affected (0.00 sec)
Display all records from the table using select statement −
mysql> select * from DemoTable1962;
This will produce the following output −
+---------------------+ | EmployeeInformation | +---------------------+ | 101-John-29 | | 102-David-35 | | 103-Chris-28 | +---------------------+ 3 rows in set (0.00 sec)
Here is the query to separate and select values from one column to different columns −
mysql> select substring_index(EmployeeInformation, '-', 1) as EmployeeId, substring_index(substring_index(EmployeeInformation,'-',2),'-',-1) AS EmployeeName, substring_index(substring_index(EmployeeInformation,'-',-2),'-',-1) AS EmployeeAge from DemoTable1962;
This will produce the following output −
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | 101 | John | 29 | | 102 | David | 35 | | 103 | Chris | 28 | +------------+--------------+-------------+ 3 rows in set (0.00 sec)
- Related Articles
- How to select different values from same column and display them in different columns with MySQL?
- MySQL query to copy records from one table to another with different columns
- MySQL query to get string from one column and find its position in another column with comma separated values?
- Select multiple sums with MySQL query and display them in separate columns?
- MySQL query to select column values ending with certain character/number?
- Select distinct values from three columns and display in a single column with MySQL
- How to select and display a list of values in one column that are available in two different MySQL columns?
- Display the sum of positive and negative values from a column in separate columns with MySQL
- A single MySQL query to search multiple words from different column values
- MySQL query to replace backslash from a varchar column with preceding backslash string values
- MySQL query to remove string from a column with values EMP1, EMP2, EMP3, etc.
- MySQL query to skip the duplicate and select only one from the duplicated values
- Copy values of one column to another using INSERT and SELECT in a single MySQL query
- How to concatenate strings from different columns and an additional string using a MySQL query?
- MySQL query to select all the records only from a specific column of a table with multiple columns

Advertisements