Use IN in where clause : In « Select Clause « SQL / MySQL






Use IN in where clause

  
/*
mysql> Drop table Sale;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE Sale
    -> (
    ->    ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ->    Name VARCHAR(50) NOT NULL,
    ->    InStock SMALLINT UNSIGNED NOT NULL,
    ->    OnOrder SMALLINT UNSIGNED NOT NULL,
    ->    Reserved SMALLINT UNSIGNED NOT NULL,
    ->    Department ENUM('Classical', 'Popular') NOT NULL,
    ->    Category VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.05 sec)

mysql> INSERT INTO Sale (Name,      InStock, OnOrder, Reserved, Department, Cate
gory)
    -> VALUES          ('Bloodshot', 11,      6,       1,        'Popular',  'Ro
ck'),
    ->                 ('Opera',     12,      5,       2,        'Classical','Op
era'),
    ->                 ('Jazz',      13,      4,       3,        'Popular',  'Ja
zz'),
    ->                 ('Music',     4,       3,       4,        'Classical','Da
nce'),
    ->                 ('Violin',    25,      2,       5,        'Classical', NU
LL),
    ->                 ('Toscana',   16,      1,       6,        'Classical', NU
LL),
    ->                 ('Blues',     7,       22,      7,        'Popular',   'B
lues'),
    ->                 ('Pure',      38,      5,       11,       'Popular',   NU
LL),
    ->                 ('Mud',       19,      11,      12,       'Popular',  'Co
untry'),
    ->                 ('Essence',   5,       23,      12,       'Popular', 'New
 Age'),
    ->                 ('Embrace',   21,      12,      14,       'Popular', 'New
 Age'),
    ->                 ('Satie',     42,      17,      15,       'Classical', NU
LL),
    ->                 ('Lake',      23,      47,      28,       'Classical', 'D
ance'),
    ->                 ('Favorites', 34,      15,      12,       'Classical', 'G
eneral'),
    ->                 ('Boheme',    25,      12,       5,       'Classical', 'O
pera'),  ('Cantatas',  26,      13,      8,        'Classical', 'General'),
    ->                 ('Road',      27,      13,      17,       'Popular', 'Cou
ntry'),
    ->                 ('Paris',     18,      25,      10,       'Popular', 'Jaz
z'),
    ->                 ('Woman',     29,      4,        7,       'Popular', 'Blu
es'),
    ->                 ('Bach',      21,      13,      16,       'Classical', 'G
eneral'),
    ->                 ('Opera',     12,      32,      12,       'Classical', 'O
pera'),
    ->                 ('Soul',      13,      30,      14,       'Popular', NULL
),
    ->                 ('Stages',    44,      0,       8,        'Popular', 'Blu
es'),
    ->                 ('Bach',      15,      1,       8,        'Classical', 'G
eneral');
Query OK, 24 rows affected (0.00 sec)
Records: 24  Duplicates: 0  Warnings: 0

mysql> select * from Sale;
+----+-----------+---------+---------+----------+------------+----------+
| ID | Name      | InStock | OnOrder | Reserved | Department | Category |
+----+-----------+---------+---------+----------+------------+----------+
|  1 | Bloodshot |      11 |       6 |        1 | Popular    | Rock     |
|  2 | Opera     |      12 |       5 |        2 | Classical  | Opera    |
|  3 | Jazz      |      13 |       4 |        3 | Popular    | Jazz     |
|  4 | Music     |       4 |       3 |        4 | Classical  | Dance    |
|  5 | Violin    |      25 |       2 |        5 | Classical  | NULL     |
|  6 | Toscana   |      16 |       1 |        6 | Classical  | NULL     |
|  7 | Blues     |       7 |      22 |        7 | Popular    | Blues    |
|  8 | Pure      |      38 |       5 |       11 | Popular    | NULL     |
|  9 | Mud       |      19 |      11 |       12 | Popular    | Country  |
| 10 | Essence   |       5 |      23 |       12 | Popular    | New Age  |
| 11 | Embrace   |      21 |      12 |       14 | Popular    | New Age  |
| 12 | Satie     |      42 |      17 |       15 | Classical  | NULL     |
| 13 | Lake      |      23 |      47 |       28 | Classical  | Dance    |
| 14 | Favorites |      34 |      15 |       12 | Classical  | General  |
| 15 | Boheme    |      25 |      12 |        5 | Classical  | Opera    |
| 16 | Cantatas  |      26 |      13 |        8 | Classical  | General  |
| 17 | Road      |      27 |      13 |       17 | Popular    | Country  |
| 18 | Paris     |      18 |      25 |       10 | Popular    | Jazz     |
| 19 | Woman     |      29 |       4 |        7 | Popular    | Blues    |
| 20 | Bach      |      21 |      13 |       16 | Classical  | General  |
| 21 | Opera     |      12 |      32 |       12 | Classical  | Opera    |
| 22 | Soul      |      13 |      30 |       14 | Popular    | NULL     |
| 23 | Stages    |      44 |       0 |        8 | Popular    | Blues    |
| 24 | Bach      |      15 |       1 |        8 | Classical  | General  |
+----+-----------+---------+---------+----------+------------+----------+
24 rows in set (0.00 sec)

mysql> SELECT Name, Category, InStock
    -> FROM Sale
    -> WHERE Category IN ('Blues', 'Jazz')
    -> ORDER BY Name;
+--------+----------+---------+
| Name   | Category | InStock |
+--------+----------+---------+
| Blues  | Blues    |       7 |
| Jazz   | Jazz     |      13 |
| Paris  | Jazz     |      18 |
| Stages | Blues    |      44 |
| Woman  | Blues    |      29 |
+--------+----------+---------+
5 rows in set (0.00 sec)


*/

Drop table Sale;


CREATE TABLE Sale
(
   ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name VARCHAR(50) NOT NULL,
   InStock SMALLINT UNSIGNED NOT NULL,
   OnOrder SMALLINT UNSIGNED NOT NULL,
   Reserved SMALLINT UNSIGNED NOT NULL,
   Department ENUM('Classical', 'Popular') NOT NULL,
   Category VARCHAR(20)
);


INSERT INTO Sale (Name,      InStock, OnOrder, Reserved, Department, Category)
VALUES          ('Bloodshot', 11,      6,       1,        'Popular',  'Rock'),
                ('Opera',     12,      5,       2,        'Classical','Opera'),
                ('Jazz',      13,      4,       3,        'Popular',  'Jazz'),
                ('Music',     4,       3,       4,        'Classical','Dance'),
                ('Violin',    25,      2,       5,        'Classical', NULL),
                ('Toscana',   16,      1,       6,        'Classical', NULL),
                ('Blues',     7,       22,      7,        'Popular',   'Blues'),
                ('Pure',      38,      5,       11,       'Popular',   NULL),
                ('Mud',       19,      11,      12,       'Popular',  'Country'),
                ('Essence',   5,       23,      12,       'Popular', 'New Age'),
                ('Embrace',   21,      12,      14,       'Popular', 'New Age'),
                ('Satie',     42,      17,      15,       'Classical', NULL),
                ('Lake',      23,      47,      28,       'Classical', 'Dance'),
                ('Favorites', 34,      15,      12,       'Classical', 'General'),
                ('Boheme',    25,      12,       5,       'Classical', 'Opera'),
                ('Cantatas',  26,      13,      8,        'Classical', 'General'),
                ('Road',      27,      13,      17,       'Popular', 'Country'),
                ('Paris',     18,      25,      10,       'Popular', 'Jazz'),
                ('Woman',     29,      4,        7,       'Popular', 'Blues'),
                ('Bach',      21,      13,      16,       'Classical', 'General'),
                ('Opera',     12,      32,      12,       'Classical', 'Opera'),
                ('Soul',      13,      30,      14,       'Popular', NULL),
                ('Stages',    44,      0,       8,        'Popular', 'Blues'),
                ('Bach',      15,      1,       8,        'Classical', 'General');
  
select * from Sale;
  
SELECT Name, Category, InStock
FROM Sale
WHERE Category IN ('Blues', 'Jazz')
ORDER BY Name;
           
         
    
  








Related examples in the same category

1.Use IN for static values
2.Simple demo for IN
3.Use IN and order rows
4.Simple demo for NOT IN
5.Use IN for string value
6.Use IN and BETWEEN AND
7.Find the match numbers and the number of sets won and lost of all matches that were won 3-1 or 3-2.
8.In operator and char type
9.SELECT statement uses the NOT IN operator
10.Constant value with in opertator
11.Comparisons with a large number of values can be carried out easily with IN:
12.Sub query with IN command
13.Sub query with NOT IN command