The IF function checks a condition and returns one value if the condition is true, and another value if it is false.
Click to reveal answer
beginner
Write the syntax of the IF function in MySQL.
IF(condition, value_if_true, value_if_false)
Click to reveal answer
intermediate
How does the IF function differ from the CASE statement in MySQL?
IF is used for simple two-way decisions (true/false), while CASE can handle multiple conditions and outcomes.
Click to reveal answer
beginner
Example: What will this query return? SELECT IF(5 > 3, 'Yes', 'No');
It will return 'Yes' because 5 is greater than 3, so the condition is true.
Click to reveal answer
intermediate
Can the IF function be nested inside another IF function in MySQL?
Yes, you can nest IF functions to check multiple conditions step-by-step.
Click to reveal answer
What will this MySQL query return? SELECT IF(10 = 10, 'Equal', 'Not Equal');
ANULL
B'Not Equal'
C'Equal'
DError
✗ Incorrect
The condition 10 = 10 is true, so IF returns 'Equal'.
Which part of IF(condition, value_if_true, value_if_false) is evaluated first?
AAll at once
Bvalue_if_true
Cvalue_if_false
Dcondition
✗ Incorrect
The condition is evaluated first to decide which value to return.
Can IF function return NULL as a value_if_true or value_if_false?
AYes
BNo
COnly value_if_true can be NULL
DOnly value_if_false can be NULL
✗ Incorrect
IF can return NULL for either true or false results.
Which of these is a valid use of IF in MySQL?
ASELECT IF age >= 18, 'Adult', 'Minor' FROM users;
BSELECT IF(age >= 18, 'Adult', 'Minor') FROM users;
CSELECT IF(age >= 18 THEN 'Adult' ELSE 'Minor') FROM users;
DSELECT IF(age >= 18 'Adult', 'Minor') FROM users;
✗ Incorrect
Option B uses correct IF syntax with condition and two values.
What happens if the condition in IF is NULL?
AIF returns value_if_false
BIF returns value_if_true
CIF returns NULL
DIF throws an error
✗ Incorrect
If condition is NULL, it is treated as false, so IF returns value_if_false.
Explain how the IF function works in MySQL and give a simple example.
Think about a question with two possible answers.
You got /4 concepts.
Describe a situation where nesting IF functions would be useful in a database query.
Imagine checking age groups or multiple categories.
You got /3 concepts.
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
Step 1: Understand the purpose of IF function
The IF function checks a condition and returns one value if true, another if false.
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.
Final Answer:
Returns one value if a condition is true, another if false -> Option A
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
Step 1: Recall MySQL IF function syntax
MySQL IF function uses parentheses and commas: IF(condition, true_value, false_value).
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.
Final Answer:
IF(condition, true_value, false_value) -> Option C
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
Step 1: Understand the IF condition in SELECT
The IF checks if salary is 5000 or more; returns 'High' if true, else 'Low'.
Step 2: Analyze the query output
The query returns each employee's name and a label 'High' or 'Low' in salary_level column.
Final Answer:
Names with 'High' if salary ≥ 5000, else 'Low' -> Option D
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
Step 1: Check IF function syntax
IF requires parentheses around condition and values: IF(condition, true_value, false_value).
Step 2: Identify error in query
The query lacks parentheses around IF arguments, causing syntax error.
Final Answer:
Missing parentheses around IF arguments -> Option B
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
Step 1: Understand nested IF logic
First IF checks if price > 1000, else second IF checks if price ≥ 500, else 'Cheap'.
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.
Final Answer:
SELECT product_name, IF(price > 1000, 'Expensive', IF(price >= 500, 'Moderate', 'Cheap')) AS price_category FROM products; -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.