Bird
Raised Fist0
MySQLquery~10 mins

IF function in MySQL - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to use the IF function to check if the score is greater than 50.

MySQL
SELECT IF(score [1] 50, 'Pass', 'Fail') AS result FROM exams;
Drag options to blanks, or click blank then click option'
A<
B>
C=
D!=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '=' instead of '>' causes the condition to check equality, not greater than.
Using '<' reverses the logic and gives wrong results.
2fill in blank
medium

Complete the code to return 'Adult' if age is 18 or more, else 'Minor'.

MySQL
SELECT IF(age [1] 18, 'Adult', 'Minor') AS status FROM people;
Drag options to blanks, or click blank then click option'
A=
B<
C<=
D>=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '>' excludes exactly 18 years old.
Using '<=' reverses the logic.
3fill in blank
hard

Fix the error in the IF function to correctly check if salary is not equal to 0.

MySQL
SELECT IF(salary [1] 0, 'Has Salary', 'No Salary') FROM employees;
Drag options to blanks, or click blank then click option'
A=
B>
C!=
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using '=' checks for equality, which is the opposite of what is needed.
Using '>' or '<' changes the logic incorrectly.
4fill in blank
hard

Fill both blanks to return 'High' if price is greater than 100, else 'Low'.

MySQL
SELECT IF(price [1] 100, '[2]', 'Low') AS price_level FROM products;
Drag options to blanks, or click blank then click option'
A>
B<
CHigh
DMedium
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' reverses the condition.
Returning 'Medium' instead of 'High' changes the expected output.
5fill in blank
hard

Fill both blanks to return the uppercase name if active is 1 and age is over 30, else return 'Inactive'.

MySQL
SELECT IF(active = 1 AND age [1] 30, UPPER(name), '[2]') AS status_name FROM users;
Drag options to blanks, or click blank then click option'
A>
B)
CInactive
D(
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting parentheses in UPPER function causes syntax errors.
Using '<' instead of '>' reverses the condition.
Returning wrong string instead of 'Inactive'.

Practice

(1/5)
1. What does the MySQL IF function do?
easy
A. Returns one value if a condition is true, another if false
B. Loops through rows in a table
C. Deletes rows based on a condition
D. Creates a new table

Solution

  1. Step 1: Understand the purpose of IF function

    The IF function checks a condition and returns one value if true, another if false.
  2. Step 2: Compare options with this behavior

    Only Returns one value if a condition is true, another if false describes this behavior correctly; others describe unrelated actions.
  3. Final Answer:

    Returns one value if a condition is true, another if false -> Option A
  4. Quick Check:

    IF function = conditional value choice [OK]
Hint: IF returns two possible values based on one condition [OK]
Common Mistakes:
  • Thinking IF loops through rows
  • Confusing IF with DELETE or CREATE
  • Assuming IF creates tables
2. Which of the following is the correct syntax for the MySQL IF function?
easy
A. IF[condition] {true_value} ELSE {false_value}
B. IF condition THEN true_value ELSE false_value END
C. IF(condition, true_value, false_value)
D. IF condition ? true_value : false_value

Solution

  1. Step 1: Recall MySQL IF function syntax

    MySQL IF function uses parentheses and commas: IF(condition, true_value, false_value).
  2. Step 2: Check each option

    IF(condition, true_value, false_value) matches correct syntax; the THEN/ELSE/END version is PL/SQL style, the bracketed version and ternary operator are invalid in MySQL.
  3. Final Answer:

    IF(condition, true_value, false_value) -> Option C
  4. Quick Check:

    Correct syntax uses parentheses and commas [OK]
Hint: IF uses parentheses and commas, not keywords or symbols [OK]
Common Mistakes:
  • Using IF without parentheses
  • Confusing IF with procedural IF syntax
  • Using brackets or ternary operators
3. Given a table employees with a column salary, what will this query return?
SELECT name, IF(salary >= 5000, 'High', 'Low') AS salary_level FROM employees;
medium
A. An error because IF cannot be used in SELECT
B. Only employees with salary ≥ 5000
C. Salary values replaced by 'High' or 'Low'
D. Names with 'High' if salary ≥ 5000, else 'Low'

Solution

  1. Step 1: Understand the IF condition in SELECT

    The IF checks if salary is 5000 or more; returns 'High' if true, else 'Low'.
  2. Step 2: Analyze the query output

    The query returns each employee's name and a label 'High' or 'Low' in salary_level column.
  3. Final Answer:

    Names with 'High' if salary ≥ 5000, else 'Low' -> Option D
  4. Quick Check:

    IF labels salary levels, does not filter rows [OK]
Hint: IF in SELECT returns values, does not filter rows [OK]
Common Mistakes:
  • Thinking IF filters rows like WHERE
  • Assuming salary values are replaced
  • Believing IF causes syntax error in SELECT
4. Identify the error in this MySQL query using IF:
SELECT name, IF salary > 1000, 'Rich', 'Poor' AS status FROM users;
medium
A. Missing FROM keyword
B. Missing parentheses around IF arguments
C. IF cannot be used in SELECT clause
D. Wrong column name 'status'

Solution

  1. Step 1: Check IF function syntax

    IF requires parentheses around condition and values: IF(condition, true_value, false_value).
  2. Step 2: Identify error in query

    The query lacks parentheses around IF arguments, causing syntax error.
  3. Final Answer:

    Missing parentheses around IF arguments -> Option B
  4. Quick Check:

    IF needs parentheses for arguments [OK]
Hint: Always use parentheses with IF arguments [OK]
Common Mistakes:
  • Omitting parentheses in IF
  • Confusing alias placement
  • Thinking IF is not allowed in SELECT
5. You want to classify products as 'Expensive', 'Moderate', or 'Cheap' based on price:
- Price > 1000: 'Expensive'
- Price between 500 and 1000: 'Moderate'
- Price < 500: 'Cheap'
Which query correctly uses nested IF functions to achieve this?
hard
A. SELECT product_name, IF(price > 1000, 'Expensive', IF(price >= 500, 'Moderate', 'Cheap')) AS price_category FROM products;
B. SELECT product_name, IF(price > 1000, 'Expensive', 'Moderate', 'Cheap') AS price_category FROM products;
C. SELECT product_name, IF(price > 1000, 'Expensive') ELSE IF(price >= 500, 'Moderate') ELSE 'Cheap' AS price_category FROM products;
D. SELECT product_name, IF(price > 1000, 'Expensive', IF(price > 500, 'Moderate', 'Cheap')) AS price_category FROM products;

Solution

  1. Step 1: Understand nested IF logic

    First IF checks if price > 1000, else second IF checks if price ≥ 500, else 'Cheap'.
  2. Step 2: Evaluate each option

    The version with ELSE IF uses invalid syntax. The version with four arguments has too many arguments for IF. The version with inner IF(price > 500, ...) misses 'Moderate' for price = 500. SELECT product_name, IF(price > 1000, 'Expensive', IF(price >= 500, 'Moderate', 'Cheap')) AS price_category FROM products; correctly nests IF with proper conditions and values.
  3. Final Answer:

    SELECT product_name, IF(price > 1000, 'Expensive', IF(price >= 500, 'Moderate', 'Cheap')) AS price_category FROM products; -> Option A
  4. Quick Check:

    Nested IF with correct conditions and syntax [OK]
Hint: Nest IF inside ELSE part with correct conditions [OK]
Common Mistakes:
  • Using too many arguments in one IF
  • Incorrect nested IF syntax
  • Wrong comparison operators in conditions
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