Preamble
The SQL condition IN (sometimes called the IN operator) makes it easy to check if the expression matches a value in the list of values. It is used to help reduce the need for multiple OR conditions in a SELECT, INSERT, UPDATE or DELETE operator.
Syntax of IN condition in SQL
expression_id IN (value1_id, value2_id, ... value_n_id);
Or:
expression_id IN (subquery_id);
where:
- IN (subquery_id) – Parameters or arguments
- expression_id – It’s a value for testing.
- value1_id, value2_id …, value_n_id – These are the values to check for conformity. If any of these values match an expression, the IN condition will have the value true.
- subquery_id – The subprocess is a SELECT operator, whose set of results will be checked for c compliance. If any of these values match, the IN condition will have the value true.
Using IN condition with character values
IN condition can be used with any data type in SQL. Let’s see how to use the IN condition with character (string) values.
In this example, we have a table with the following data:
| suppl_id | suppl_name | city_id | state_id |
| 100 | Yandex | Moscow | Russian |
| 200 | Lansing | Michigan | |
| 300 | Oracle | Redwood City | California |
| 400 | Bing | Redmond | Washington |
| 500 | Yahoo | Sunnyvale | Washington |
| 600 | DuckDuckGo | Paoli | Pennsylvania |
| 700 | Qwant | Paris | France |
| 800 | Menlo Park | California | |
| 900 | Electronic Arts | San Francisco | California |
Enter the following SQL statement:
SELECT *
FROM suppls
WHERE suppl_name IN ('Yandex', 'Oracle', 'Facebook');
Three entries will be selected. Here are the results you should get:
| suppl_id | suppl_name | city_id | state_id |
| 100 | Yandex | Moscow | Russian |
| 300 | Oracle | Redwood City | California |
| 800 | Menlo Park | California |
In this example, all rows from the suppls table will be returned, where suppl_name is Yandex, Oracle or Facebook. Since SELECT uses *, all fields from the table will be displayed in the result set.
This is equivalent to the next SQL statement:
SELECT *
FROM suppls
WHERE suppl_name = 'Yandex'
OR suppl_name = 'Oracle'
OR suppl_name = 'Facebook';
As you can see, using the IN condition makes the operator easier to read and more efficient than using multiple OR conditions.
Using the IN condition with numeric values
Next, let’s look at how to use the IN condition with numerical values.
In this example, we have a table and the following data:
| custom_id | f_name | l_name | f_website |
| 4000 | Justin | Bieber | google.com |
| 5000 | Selena | Gomez | bing.com |
| 6000 | Mila | Kunis | yahoo.com |
| 7000 | Tom | Cruise | oracle.com |
| 8000 | Johnny | Depp | NULL |
| 9000 | Russell | Crowe | google.com |
Enter the following SQL statement:
SELECT *
FROM customs
WHERE custom_id IN (5000, 7000, 8000, 9000);
Four records will be selected. Here are the results that you should get:
| custom_id | f_name | l_name | fav_website |
| 5000 | Selena | Gomez | bing.com |
| 7000 | Tom | Cruise | oracle.com |
| 8000 | Johnny | Depp | NULL |
| 9000 | Russell | Crowe | google.com |
In this example, all records from the custom_id table where custom_id is 5000, 7000, 8000 or 9000 will be returned.
This is equivalent to the next SQL statement:
SELECT *
FROM customs
WHERE custom_id = 5000
OR custom_id = 7000
OR custom_id = 8000
OR custom_id = 9,000;
Using IN condition with NOT operator
Finally, let’s see how to use the IN condition with the NOT operator. The NOT operator is used to override the condition. When we use the NOT operator with the IN condition, we create the NOT IN condition. This checks to see if the expression is not in the list.
In this example, we have a product table with the following data:
| prod_id | prod_name | cat_id |
| 1 | Pear | 50 |
| 2 | Banana | 50 |
| 3 | Orange | 50 |
| 4 | Apple | 50 |
| 5 | Bread | 75 |
| 6 | Sliced Ham | 25 |
| 7 | Kleenex | NULL |
Enter the following SQL statement:
SELECT *
FROM prods
WHERE prod_name NOT IN ('Pear', 'Banana', 'Bread');
Four entries will be selected. Here are the results you will get:
| prod_id | prod_name | cat_id |
| 3 | Orange | 50 |
| 4 | Apple | 50 |
| 6 | Sliced Ham | 25 |
| 7 | Kleenex | NULL |
This example will return all rows from the products table where prod_name is not Pear, Banana or Bread. Sometimes it is more efficient to list the values that you do not want, as opposed to the values that you want.
This is equivalent to the next SQL statement:
SELECT *
FROM prods
WHERE prod_name <> 'Pear'
AND prod_name <> 'Banana'
AND prod_name <> 'Bread';
As you can see, the equivalent operator is written using the AND condition instead of the OR condition because the IN condition is cancelled.
About Enteros
Enteros offers a patented database performance management SaaS platform. It finds the root causes of complex database scalability and performance problems that affect business across a growing number of cloud, RDBMS, NoSQL, and machine learning database platforms.
The views expressed on this blog are those of the author and do not necessarily reflect the opinions of Enteros Inc. This blog may contain links to the content of third-party sites. By providing such links, Enteros Inc. does not adopt, guarantee, approve, or endorse the information, views, or products available on such sites.
Are you interested in writing for Enteros’ Blog? Please send us a pitch!
RELATED POSTS
How AIOps and FinOps Optimize Cloud Database Performance for Banking and BFSI
- 31 August 2026
- Database Performance Management
Introduction The banking and financial services industry is undergoing a significant transformation as institutions move critical workloads to cloud and hybrid-cloud environments. Digital banking applications, payment platforms, mobile banking, lending systems, insurance applications, fraud detection platforms, wealth management solutions, and financial analytics increasingly depend on scalable cloud infrastructure and high-performing databases. However, cloud adoption introduces … Continue reading “How AIOps and FinOps Optimize Cloud Database Performance for Banking and BFSI”
How to Optimize Media and Entertainment Database Performance with Enteros Database Software, AI-Powered Analytics, and Database Observability
- 30 August 2026
- Database Performance Management
Introduction The media and entertainment industry has become a digital-first business. Streaming services, digital publishing, online gaming content, advertising platforms, social experiences, content management systems, subscription platforms, and personalized recommendations all depend on databases. Modern media companies process enormous volumes of customer, content, advertising, transaction, and behavioral information. Read more”Indian Country” highlights Enteros and its … Continue reading “How to Optimize Media and Entertainment Database Performance with Enteros Database Software, AI-Powered Analytics, and Database Observability”
How to Optimize Manufacturing Database Performance with Enteros Database Software, AIOps, and Predictive Analytics
Introduction Manufacturing is becoming increasingly dependent on digital infrastructure. Modern factories use enterprise resource planning (ERP), manufacturing execution systems (MES), supply-chain platforms, warehouse management systems, industrial IoT, quality management applications, predictive maintenance, and advanced analytics to manage production. Behind these systems are databases processing enormous amounts of operational information. Production schedules, inventory levels, machine data, … Continue reading “How to Optimize Manufacturing Database Performance with Enteros Database Software, AIOps, and Predictive Analytics”
The Future of Industry-Specific Cloud Optimization with AIOps, FinOps, and AI-Powered Database Management
- 28 August 2026
- Database Performance Management
Introduction Cloud computing has become a foundational component of digital transformation across industries. Banking organizations use cloud platforms to support digital payments and online banking. Healthcare providers rely on cloud infrastructure for digital health applications and patient services. Educational institutions operate learning management systems and virtual classrooms in the cloud. Retailers, manufacturers, insurers, logistics providers, … Continue reading “The Future of Industry-Specific Cloud Optimization with AIOps, FinOps, and AI-Powered Database Management”