Bird
Raised Fist0
MySQLquery~20 mins

UPDATE with WHERE clause in MySQL - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
UPDATE Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
2:00remaining
What is the output after this UPDATE?
Consider a table Employees with columns id, name, and salary. Initially, the table has:
1, 'Alice', 5000
2, 'Bob', 6000
3, 'Charlie', 7000

What will be the salary of Bob after running this query?
UPDATE Employees SET salary = salary + 500 WHERE name = 'Bob';
A6500
B5500
C7000
D6000
Attempts:
2 left
💡 Hint
The WHERE clause limits which rows get updated.
📝 Syntax
intermediate
2:00remaining
Which UPDATE query is syntactically correct?
Choose the correct MySQL UPDATE statement that increases salary by 1000 for employees with salary less than 6000.
AUPDATE Employees SET salary = salary + 1000 WHERE salary < 6000;
BUPDATE Employees salary = salary + 1000 WHERE salary < 6000;
CUPDATE Employees SET salary + 1000 WHERE salary < 6000;
DUPDATE Employees SET salary = salary + 1000 salary < 6000;
Attempts:
2 left
💡 Hint
Remember the syntax: UPDATE table SET column = value WHERE condition;
❓ optimization
advanced
2:00remaining
Which UPDATE query is more efficient for updating multiple rows?
You want to increase salary by 500 for all employees in department 'Sales'. The table has an index on the department column.
Which query is more efficient?
AUPDATE Employees SET salary = salary + 500 WHERE department LIKE '%Sales%';
BUPDATE Employees SET salary = salary + 500 WHERE department = 'Sales';
CUPDATE Employees SET salary = salary + 500;
DUPDATE Employees SET salary = salary + 500 WHERE department != 'Sales';
Attempts:
2 left
💡 Hint
Using indexed columns in WHERE clause improves performance.
🔧 Debug
advanced
2:00remaining
What error does this UPDATE query raise?
Given a table Products with columns id, name, and price, what error occurs when running:
UPDATE Products SET price = price + 10 WHERE;
ARuntime error: column 'price' not found
BNo error, updates all rows
CSyntax error near 'WHERE;'
DType error: cannot add integer to price
Attempts:
2 left
💡 Hint
Check the WHERE clause syntax.
🧠 Conceptual
expert
2:00remaining
What happens if UPDATE has no WHERE clause?
If you run:
UPDATE Employees SET salary = salary + 1000;

What is the effect on the table?
ASyntax error due to missing WHERE clause
BOnly rows with NULL salary are updated
CNo rows are updated
DAll rows have their salary increased by 1000
Attempts:
2 left
💡 Hint
Think about what happens when WHERE is omitted.

Practice

(1/5)
1. What does the WHERE clause do in an UPDATE statement in MySQL?
easy
A. It specifies which rows should be updated.
B. It creates a new table.
C. It deletes rows from the table.
D. It selects rows to display.

Solution

  1. Step 1: Understand the purpose of UPDATE

    The UPDATE command changes data in existing rows of a table.
  2. Step 2: Role of WHERE clause

    The WHERE clause limits which rows get changed. Without it, all rows update.
  3. Final Answer:

    It specifies which rows should be updated. -> Option A
  4. Quick Check:

    WHERE limits rows to update [OK]
Hint: WHERE filters rows to update; no WHERE updates all [OK]
Common Mistakes:
  • Thinking WHERE creates or deletes rows
  • Confusing UPDATE with SELECT
  • Ignoring WHERE causes all rows to update
2. Which of the following is the correct syntax to update the salary to 5000 for employees with id 10 in MySQL?
easy
A. UPDATE employees SET salary = 5000 AND id = 10;
B. UPDATE employees SET salary = 5000 WHERE id = 10;
C. UPDATE employees SET salary WHERE id = 10 = 5000;
D. UPDATE employees WHERE id = 10 SET salary = 5000;

Solution

  1. Step 1: Identify correct UPDATE syntax

    The correct order is: UPDATE table SET column = value WHERE condition.
  2. Step 2: Check each option

    UPDATE employees SET salary = 5000 WHERE id = 10; follows correct syntax. Others have misplaced clauses or wrong operators.
  3. Final Answer:

    UPDATE employees SET salary = 5000 WHERE id = 10; -> Option B
  4. Quick Check:

    UPDATE SET column=value WHERE condition [OK]
Hint: SET comes before WHERE in UPDATE statements [OK]
Common Mistakes:
  • Placing WHERE before SET
  • Using AND instead of WHERE
  • Incorrect assignment syntax
3. Given the table products with columns id, name, and price, what will be the price of product with id = 3 after running this query?
UPDATE products SET price = price + 10 WHERE id = 3;

Assume the original price for id = 3 was 50.
medium
A. 10
B. 50
C. 60
D. NULL

Solution

  1. Step 1: Understand the UPDATE operation

    The query adds 10 to the current price for the product where id = 3.
  2. Step 2: Calculate new price

    Original price is 50, so 50 + 10 = 60.
  3. Final Answer:

    60 -> Option C
  4. Quick Check:

    50 + 10 = 60 [OK]
Hint: Add to existing value only for rows matching WHERE [OK]
Common Mistakes:
  • Ignoring WHERE and updating all rows
  • Setting price to 10 instead of adding
  • Confusing original and updated values
4. Identify the error in this MySQL query:
UPDATE users SET age = 30 WHERE;
medium
A. SET keyword is misplaced.
B. Table name is missing.
C. UPDATE keyword is misspelled.
D. Missing condition after WHERE clause.

Solution

  1. Step 1: Analyze the query structure

    The query has UPDATE, SET, and WHERE keywords but WHERE has no condition.
  2. Step 2: Identify the error

    WHERE must be followed by a condition to specify which rows to update.
  3. Final Answer:

    Missing condition after WHERE clause. -> Option D
  4. Quick Check:

    WHERE requires condition [OK]
Hint: WHERE must always have a condition [OK]
Common Mistakes:
  • Leaving WHERE empty
  • Misplacing SET and WHERE
  • Forgetting semicolon
5. You have a table orders with columns order_id, status, and amount. You want to increase the amount by 20% only for orders with status 'pending' and amount less than 100. Which query correctly does this?
hard
A. UPDATE orders SET amount = amount * 1.2 WHERE status = 'pending' AND amount < 100;
B. UPDATE orders SET amount = amount + 20 WHERE status = 'pending' OR amount < 100;
C. UPDATE orders SET amount = amount * 1.2 WHERE status = 'pending' OR amount < 100;
D. UPDATE orders SET amount = amount * 0.2 WHERE status = 'pending' AND amount < 100;

Solution

  1. Step 1: Understand the condition

    We want to update only rows where status is 'pending' AND amount is less than 100.
  2. Step 2: Calculate new amount

    Increase by 20% means multiply amount by 1.2.
  3. Step 3: Check options

    UPDATE orders SET amount = amount * 1.2 WHERE status = 'pending' AND amount < 100; correctly uses AND and multiplies amount by 1.2. Others use OR or wrong calculations.
  4. Final Answer:

    UPDATE orders SET amount = amount * 1.2 WHERE status = 'pending' AND amount < 100; -> Option A
  5. Quick Check:

    AND condition + *1.2 [OK]
Hint: Use AND for multiple conditions in WHERE [OK]
Common Mistakes:
  • Using OR instead of AND
  • Adding fixed 20 instead of 20%
  • Multiplying by 0.2 instead of 1.2
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