w3resource

Performing Case-Insensitive Searches in SQL


Using ILIKE in PostgreSQL and LIKE in MySQL/SQL Server

Write a SQL query to perform case-insensitive searches, using ILIKE in PostgreSQL and LIKE with LOWER() in MySQL/SQL Server.

Solution:

-- PostgreSQL
SELECT EmployeeID, Name
FROM Employees
WHERE Name ILIKE '%john%';

-- MySQL/SQL Server
SELECT EmployeeID, Name
FROM Employees
WHERE LOWER(Name) LIKE '%john%';

Explanation:

  • Purpose of the Query :
    • The goal is to demonstrate how case-insensitive searches differ between PostgreSQL and other databases.
  • Key Components :
    • ILIKE (PostgreSQL): Performs case-insensitive pattern matching.
    • LOWER() with LIKE (MySQL/SQL Server): Converts text to lowercase for comparison.
  • Why Compare Case-Insensitive Searches?:
    • Case sensitivity varies across platforms, impacting query behavior.
    • Understanding these differences ensures accurate results.
  • Real-World Application :
    • In search systems, case-insensitive searches improve user experience.

Additional Notes:

  • Use ILIKE in PostgreSQL for simplicity and LOWER() in MySQL/SQL Server for compatibility.
  • Test queries on all target platforms to ensure consistent results.
  • Important Considerations:
    • Avoid unnecessary use of LOWER() for performance reasons.

    For more Practice: Solve these Related Problems:

    • Write a SQL query to perform a case-insensitive search for product names, using ILIKE in PostgreSQL and LIKE with LOWER() in MySQL/SQL Server.
    • Write a SQL query to perform a case-insensitive search for customer names, using ILIKE in PostgreSQL and LIKE with LOWER() in MySQL/SQL Server.
    • Write a SQL query to perform a case-insensitive search for order IDs, using ILIKE in PostgreSQL and LIKE with LOWER() in MySQL/SQL Server.
    • Write a SQL query to perform a case-insensitive search for employee names, using ILIKE in PostgreSQL and LIKE with LOWER() in MySQL/SQL Server.


    Have another way to solve this solution? Contribute your code (and comments) through Disqus.

    Previous SQL Exercise:Writing a Query that uses TRUNCATE in MySQL and DELETE in SQL Server.
    Next SQL Exercise: Writing a Query That Uses SEQUENCE in PostgreSQL and IDENTITY in SQL Server.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.