Bird
Raised Fist0
SQLquery~10 mins

WHERE with LIKE pattern matching in SQL - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - WHERE with LIKE pattern matching
Start Query
↓
Apply WHERE clause
↓
Check LIKE pattern match
↓
Include row
↓
Return filtered rows
↓
End
The query starts, applies the WHERE clause, checks each row against the LIKE pattern, includes matching rows, excludes others, then returns the filtered result.
Execution Sample
SQL
SELECT name FROM employees
WHERE name LIKE 'A%';
This query selects employee names starting with 'A'.
Execution Table
StepRow Data (name)LIKE PatternMatch ResultAction
1Alice'A%'YesInclude row
2Bob'A%'NoExclude row
3Amanda'A%'YesInclude row
4Charlie'A%'NoExclude row
5Albert'A%'YesInclude row
6David'A%'NoExclude row
Exit---All rows checked, query ends
💡 All rows checked, query ends
Variable Tracker
VariableStartAfter 1After 2After 3After 4After 5After 6Final
Current RowNoneAliceBobAmandaCharlieAlbertDavidNone
Match ResultNoneYesNoYesNoYesNoNone
Included Rows[][Alice][Alice][Alice, Amanda][Alice, Amanda][Alice, Amanda, Albert][Alice, Amanda, Albert][Alice, Amanda, Albert]
Key Moments - 3 Insights
Why does 'Bob' not appear in the results even though it has a 'b'?
The LIKE pattern 'A%' means the name must start with uppercase 'A'. 'Bob' starts with 'B', so it does not match (see execution_table row 2).
What does the '%' symbol mean in the LIKE pattern?
The '%' means any sequence of characters can follow after 'A'. So names starting with 'A' and any characters after match (see execution_table rows 1, 3, 5).
Is the LIKE pattern case sensitive?
Yes, in standard SQL LIKE is case sensitive unless the database uses case-insensitive collation. Here, 'A%' matches uppercase 'A' only (see 'Alice' vs 'alice').
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the Match Result for 'Charlie'?
AYes
BNo
CMaybe
DNot checked
💡 Hint
Check the row with 'Charlie' in the execution_table under 'Match Result' column.
At which step does the query include the row 'Albert'?
AStep 5
BStep 3
CStep 4
DStep 6
💡 Hint
Look at the 'Included Rows' variable_tracker after each step.
If the LIKE pattern changed to '%a', which rows would match?
ANames containing 'a' anywhere
BNames starting with 'a'
CNames ending with 'a'
DNames exactly 'a'
💡 Hint
The '%' means any characters before 'a', so names ending with 'a' match.
Concept Snapshot
WHERE with LIKE pattern matching:
- Syntax: WHERE column LIKE 'pattern'
- '%' matches any sequence of characters
- '_' matches exactly one character
- Case sensitivity depends on DB
- Filters rows matching the pattern
- Useful for partial text search
Full Transcript
This visual execution shows how a SQL query with WHERE and LIKE pattern matching works. The query filters rows from a table by checking if a column's value matches a pattern. The '%' symbol means any characters can follow or precede. Each row is checked one by one: if it matches, it is included; if not, excluded. The example uses names starting with 'A'. The execution table tracks each row's check and action. The variable tracker shows how the current row and included rows change step by step. Key moments clarify common confusions like case sensitivity and pattern meaning. The quiz tests understanding by referencing the execution visuals. This helps beginners see exactly how LIKE filters data in SQL.

Practice

(1/5)
1. Which SQL clause is used to filter rows based on a pattern in a text column?
SELECT * FROM employees WHERE name LIKE 'A%';
easy
A. GROUP BY
B. ORDER BY
C. WHERE with LIKE
D. JOIN

Solution

  1. Step 1: Understand the purpose of LIKE

    The LIKE keyword is used to match text patterns in SQL queries.
  2. Step 2: Identify the filtering clause

    The WHERE clause filters rows, and combined with LIKE, it filters rows matching a pattern.
  3. Final Answer:

    WHERE with LIKE -> Option C
  4. Quick Check:

    WHERE with LIKE = B [OK]
Hint: LIKE is always used with WHERE to filter text patterns [OK]
Common Mistakes:
  • Confusing LIKE with GROUP BY
  • Using LIKE without WHERE
  • Thinking ORDER BY filters rows
2. Which of the following is the correct syntax to find names starting with 'Jo' in a table called users?
easy
A. SELECT * FROM users WHERE name LIKE '%Jo';
B. SELECT * FROM users WHERE name LIKE 'Jo%';
C. SELECT * FROM users WHERE name LIKE '_Jo%';
D. SELECT * FROM users WHERE name LIKE 'Jo_';

Solution

  1. Step 1: Understand the pattern for names starting with 'Jo'

    Names starting with 'Jo' means 'Jo' followed by any characters, so pattern is 'Jo%'.
  2. Step 2: Match the correct syntax

    SELECT * FROM users WHERE name LIKE 'Jo%'; uses LIKE 'Jo%' which matches names starting with 'Jo'. Others do not match this pattern.
  3. Final Answer:

    SELECT * FROM users WHERE name LIKE 'Jo%'; -> Option B
  4. Quick Check:

    Start with 'Jo' = LIKE 'Jo%' [OK]
Hint: Use % after text to match any ending characters [OK]
Common Mistakes:
  • Using % before text to match start
  • Using _ instead of %
  • Misplacing wildcards
3. Given the table products with a column product_code, what rows will this query return?
SELECT * FROM products WHERE product_code LIKE '_A%';
medium
A. Rows where product_code starts with 'A'
B. Rows where product_code ends with 'A'
C. Rows where product_code contains 'A' anywhere
D. Rows where product_code has 'A' as the second character

Solution

  1. Step 1: Understand the pattern '_A%'

    The underscore (_) matches exactly one character, so the first character can be anything. 'A' is the second character. '%' means any characters after.
  2. Step 2: Interpret the query result

    The query returns rows where the second character of product_code is 'A', regardless of the first character or what follows.
  3. Final Answer:

    Rows where product_code has 'A' as the second character -> Option D
  4. Quick Check:

    _A% means second char is 'A' [OK]
Hint: Use _ for single char, % for any chars [OK]
Common Mistakes:
  • Thinking _ matches zero or multiple characters
  • Confusing position of 'A' in pattern
  • Assuming LIKE matches anywhere without wildcards
4. Identify the error in this SQL query:
SELECT * FROM customers WHERE city LIKE '%York_';

It should find cities ending with 'York' followed by exactly one character.
medium
A. The pattern is correct; no error
B. The underscore should be before 'York' like '_%York'
C. The pattern should be '%York%' to match any after 'York'
D. The underscore should be after 'York' but without % like '%York_'

Solution

  1. Step 1: Analyze the pattern '%York_'

    The % matches any characters before 'York', then 'York' literal, then _ matches exactly one character after.
  2. Step 2: Check if it matches cities ending with 'York' plus one char

    This pattern correctly matches cities ending with 'York' plus exactly one character, so the query is correct.
  3. Final Answer:

    The pattern is correct; no error -> Option A
  4. Quick Check:

    '%York_' matches 'York' + 1 char [OK]
Hint: Check if _ and % are placed as intended [OK]
Common Mistakes:
  • Thinking _ matches multiple characters
  • Confusing placement of % and _
  • Assuming pattern must end with %
5. You want to find all employees whose email ends with '.com' but have exactly one character before '.com'. Which query is correct?
hard
A. SELECT * FROM employees WHERE email LIKE '%_.com';
B. SELECT * FROM employees WHERE email LIKE '%_.com%';
C. SELECT * FROM employees WHERE email LIKE '%.__.com';
D. SELECT * FROM employees WHERE email LIKE '%.com';

Solution

  1. Step 1: Understand the requirement

    The email should end with '.com' and have exactly one character before '.com'.
  2. Step 2: Analyze each pattern

    SELECT * FROM employees WHERE email LIKE '%.com'; matches any email ending with '.com' but no restriction on characters before.
    SELECT * FROM employees WHERE email LIKE '%_.com'; uses '%_.com' meaning any characters, then exactly one character, then '.com' at the end.
    SELECT * FROM employees WHERE email LIKE '%.__.com'; expects two characters before '.com' which is incorrect.
    SELECT * FROM employees WHERE email LIKE '%_.com%'; allows any characters after '.com' which is incorrect for ending.
  3. Final Answer:

    SELECT * FROM employees WHERE email LIKE '%_.com'; -> Option A
  4. Quick Check:

    Use _ before '.com' for exactly one char [OK]
Hint: Use _ before '.com' to match exactly one char [OK]
Common Mistakes:
  • Using % instead of _ for single character
  • Placing % after '.com' allowing extra chars
  • Miscounting characters before '.com'
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard