SQL Practice Logo

SQLPractice Online

Pattern Matching (LIKE, REGEX): Concept

Module: Advanced Filtering

Pattern matching filters rows based on text patterns using wildcards (LIKE) or regular expressions (REGEX), enabling flexible text searches beyond exact matches.

**LIKE Operator:**

Simple pattern matching with wildcards:

- % matches any sequence of characters (including zero)

- _ matches exactly one character

Examples:

- 'John%' matches 'John', 'Johnson', 'Johnny'

- '%son' matches 'Johnson', 'Wilson', 'Anderson'

- 'J_hn' matches 'John', 'Jahn' but not 'Johnson'

**REGEX (Regular Expressions):**

Complex pattern matching with full regex syntax.

Database-specific: REGEXP (MySQL), ~ (PostgreSQL), REGEXP_LIKE (Oracle)

**Case Sensitivity:**

- LIKE is case-insensitive in MySQL, case-sensitive in PostgreSQL

- Use ILIKE (PostgreSQL) for case-insensitive matching

- Use LOWER() for portable case-insensitive searches

Essential for backend engineers building search features, data analysts cleaning data, and anyone working with text-based filtering in applications.

Pattern matching powers search features: find customers by partial name, filter products by SKU patterns, search emails by domain, validate phone numbers, extract data from text fields.