Thanks to visit codestin.com
Credit goes to www.rameshfadatare.com

MySQL LOCATE() Function

Introduction

In this chapter, we will learn about the LOCATE() function in MySQL. The LOCATE() function is used to find the position of the first occurrence of a substring within a string. This function is useful for searching and locating specific text within a larger string. We will cover the syntax for the LOCATE() function, a complete example of its usage, and important considerations for using it in MySQL.

Syntax

The basic syntax for using the LOCATE() function in MySQL is:

SELECT LOCATE(substring, string[, start_position]);
  • substring: The substring to search for within the string.
  • string: The string to be searched.
  • start_position: Optional. The position to start searching. The default position is 1.

Complete Example

Let’s go through a complete example where we create a database and table, insert data, and demonstrate the usage of the LOCATE() function.

  1. Create a Database and Table
CREATE DATABASE company;
USE company;

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
('Rahul', 'Sharma', '[email protected]'),
('Priya', 'Singh', '[email protected]'),
('Amit', 'Kumar', '[email protected]');
  1. Using LOCATE() to Find Substring Position

We will use the LOCATE() function to find the position of the substring ‘@’ in the email addresses of employees.

SELECT
    email,
    LOCATE('@', email) AS at_position
FROM employees;

Output:

email at_position
[email protected] 13
[email protected] 12
[email protected] 11
  1. Finding Substring Position with Start Position

We can use the LOCATE() function with the start_position parameter to find the position of the substring ‘.’ after the ‘@’ symbol in the email addresses.

SELECT
    email,
    LOCATE('.', email, LOCATE('@', email) + 1) AS dot_position_after_at
FROM employees;

Output:

email dot_position_after_at
[email protected] 19
[email protected] 18
[email protected] 17
  1. Combining LOCATE() with Other String Functions

We can combine the LOCATE() function with other string functions to extract specific parts of text.

Example: Extract Domain from Email Addresses

SELECT
    email,
    SUBSTRING(email, LOCATE('@', email) + 1) AS domain
FROM employees;

Output:

email domain
[email protected] example.com
[email protected] example.com
[email protected] example.com

Important Considerations

  • Case Sensitivity: The LOCATE() function is case-sensitive. Ensure that the substring matches the case of the text in the string.
  • Start Position: The start_position is 1-based, meaning the first character in the string is at position 1. Use this parameter to control where the search starts within the string.
  • Return Value: The LOCATE() function returns the position of the first occurrence of the substring. If the substring is not found, it returns 0.
  • Performance: Using the LOCATE() function on large datasets can impact performance. Optimize your queries by searching for substrings only when necessary and considering the impact on query execution time.

Conclusion

The LOCATE() function in MySQL is used for finding the position of a substring within a string. This chapter covered the syntax for using the LOCATE() function, provided a complete example of its usage, and discussed important considerations.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top