🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (178K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
Introduction
In this chapter, we will learn about the IN operator in MySQL. The IN operator is used to filter the result set based on a specified list of values. It allows you to specify multiple values in a WHERE clause, making it easier to query rows that match any of the given values. We will cover the syntax, examples, and important considerations for using the IN operator.
Syntax
The basic syntax for the IN operator is:
SELECT column1, column2, ...
FROM table_name
WHERE column_name IN (value1, value2, ...);
column_name: The column to be checked against the list of values.value1, value2, ...: The values to check for in the column.
Using IN Operator
Example with SELECT
SELECT first_name, last_name, email
FROM students
WHERE last_name IN ('Sharma', 'Singh', 'Verma');
This example retrieves rows where the last_name is either 'Sharma', 'Singh', or 'Verma'.
Example with NOT IN
To find rows that do not match any value in the list, you can use the NOT IN operator.
SELECT first_name, last_name, email
FROM students
WHERE last_name NOT IN ('Sharma', 'Singh', 'Verma');
This example retrieves rows where the last_name is not 'Sharma', 'Singh', or 'Verma'.
Example with Subquery
The IN operator can also be used with a subquery to filter rows based on the result of another query.
SELECT first_name, last_name, email
FROM students
WHERE id IN (SELECT student_id FROM enrollments WHERE course_id = 1);
This example retrieves rows where the id matches any student_id from the enrollments table for course_id 1.
Full Example
Let's go through a full example where we create a table, insert data into it, and use the IN operator to filter records.
- Create a Database:
CREATE DATABASE school;
- Select the Database:
USE school;
- Create a Table:
CREATE TABLE students (
id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
enrollment_date DATE
);
- Insert Data into the Table:
INSERT INTO students (first_name, last_name, email, enrollment_date) VALUES
('Rahul', 'Sharma', 'rahul.sharma@example.com', '2023-07-01'),
('Priya', 'Singh', 'priya.singh@example.com', '2023-07-02'),
('Amit', 'Kumar', 'amit.kumar@example.com', '2023-07-03'),
('Neha', 'Verma', 'neha.verma@example.com', '2023-07-04'),
('Sahil', 'Mehta', 'sahil.mehta@example.com', '2023-07-05');
- Use the IN Operator with SELECT:
SELECT first_name, last_name, email
FROM students
WHERE last_name IN ('Sharma', 'Singh', 'Verma');
Output
| first_name | last_name | |
|---|---|---|
| Rahul | Sharma | rahul.sharma@example.com |
| Priya | Singh | priya.singh@example.com |
| Neha | Verma | neha.verma@example.com |
- Use the NOT IN Operator with SELECT:
SELECT first_name, last_name, email
FROM students
WHERE last_name NOT IN ('Sharma', 'Singh', 'Verma');
Output
| first_name | last_name | |
|---|---|---|
| Amit | Kumar | amit.kumar@example.com |
| Sahil | Mehta | sahil.mehta@example.com |
- Use the IN Operator with a Subquery:
CREATE TABLE enrollments (
id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT,
course_id INT
);
INSERT INTO enrollments (student_id, course_id) VALUES
(1, 1),
(2, 1),
(3, 2),
(4, 1);
SELECT first_name, last_name, email
FROM students
WHERE id IN (SELECT student_id FROM enrollments WHERE course_id = 1);
Output
| first_name | last_name | |
|---|---|---|
| Rahul | Sharma | rahul.sharma@example.com |
| Priya | Singh | priya.singh@example.com |
| Neha | Verma | neha.verma@example.com |
Important Considerations
- Performance: Using the
INoperator with a large list of values or a subquery can impact performance. Ensure appropriate indexing and optimize queries to improve performance. - NULL Values: If the column being checked contains
NULLvalues, they will not match any value in theINlist, unless explicitly handled.
Conclusion
The IN operator is used for filtering data based on a list of values in MySQL queries. This chapter covered how to use the IN operator, provided examples with SELECT statements, NOT IN operator, and subqueries, and discussed important considerations. In the next chapter, we will learn how to use the BETWEEN operator to filter data within a specific range.
Comments
Post a Comment
Leave Comment