To identify SET values that share common elements : Set « Data Type « SQL / MySQL

Home
SQL / MySQL
1.Aggregate Functions
2.Backup Load
3.Command MySQL
4.Cursor
5.Data Type
6.Database
7.Date Time
8.Engine
9.Event
10.Flow Control
11.FullText Search
12.Function
13.Geometric
14.I18N
15.Insert Delete Update
16.Join
17.Key
18.Math
19.Procedure Function
20.Regular Expression
21.Select Clause
22.String
23.Table Index
24.Transaction
25.Trigger
26.User Permission
27.View
28.Where Clause
29.XML
SQL / MySQL » Data Type » Set 
To identify SET values that share common elements
      
mysql>
mysql> CREATE TABLE mytable
    -> (
    ->  id              INT UNSIGNED NOT NULL AUTO_INCREMENT,
    ->  name    CHAR(20NOT NULL,
    ->  birth   DATE,
    ->  color   ENUM('blue','red','green','brown','black','white'),
    ->  foods   SET('lutefisk','burrito','curry','eggroll','fadge','pizza'),
    ->  cats    INT,
    ->  PRIMARY KEY (id)
    -> );
Query OK, rows affected (0.01 sec)

mysql> INSERT INTO mytable
    ->  VALUES
    ->          (NULL,'Jack','1970-04-13','black','eggroll,pizza,fadge',0),
    ->          (NULL,'Tom','1969-09-30','white','curry,eggroll,burrito',3),
    ->          (NULL,'Mary','1957-12-01','red','burrito,pizza,curry',1),
    ->          (NULL,'Jane','1973-11-02','red','pizza,eggroll',4),
    ->          (NULL,'Sean','1963-07-04','blue','burrito,curry',5),
    ->          (NULL,'Alan','1965-02-14','red',',curry,eggroll',1),
    ->          (NULL,'March','1968-09-17','green','fadge,lutefisk',1),
    ->          (NULL,'Shane','1975-09-02','black','pizza,curry',2),
    ->          (NULL,'Dan','1952-08-20','green','fadge,lutefisk',0),
    ->          (NULL,'Tony','1960-05-01','white','pizza,burrito',0);
Query OK, 10 rows affected, warning (0.00 sec)
Records: 10  Duplicates: 0  Warnings: 1

mysql>
mysql> SELECT t1.name, t2.name, t1.foods, t2.foods
    -> FROM mytable AS t1, mytable AS t2
    -> WHERE t1.id != t2.id AND (t1.foods & t2.foods!= 0
    -> ORDER BY t1.name, t2.name;
+-------+-------+-----------------------+-----------------------+
| name  | name  | foods                 | foods                 |
+-------+-------+-----------------------+-----------------------+
| Alan  | Jack  | curry,eggroll         | eggroll,fadge,pizza   |
| Alan  | Jane  | curry,eggroll         | eggroll,pizza         |
| Alan  | Mary  | curry,eggroll         | burrito,curry,pizza   |
| Alan  | Sean  | curry,eggroll         | burrito,curry         |
| Alan  | Shane | curry,eggroll         | curry,pizza           |
| Alan  | Tom   | curry,eggroll         | burrito,curry,eggroll |
| Dan   | Jack  | lutefisk,fadge        | eggroll,fadge,pizza   |
| Dan   | March | lutefisk,fadge        | lutefisk,fadge        |
| Jack  | Alan  | eggroll,fadge,pizza   | curry,eggroll         |
| Jack  | Dan   | eggroll,fadge,pizza   | lutefisk,fadge        |
| Jack  | Jane  | eggroll,fadge,pizza   | eggroll,pizza         |
| Jack  | March | eggroll,fadge,pizza   | lutefisk,fadge        |
| Jack  | Mary  | eggroll,fadge,pizza   | burrito,curry,pizza   |
| Jack  | Shane | eggroll,fadge,pizza   | curry,pizza           |
| Jack  | Tom   | eggroll,fadge,pizza   | burrito,curry,eggroll |
| Jack  | Tony  | eggroll,fadge,pizza   | burrito,pizza         |
| Jane  | Alan  | eggroll,pizza         | curry,eggroll         |
| Jane  | Jack  | eggroll,pizza         | eggroll,fadge,pizza   |
| Jane  | Mary  | eggroll,pizza         | burrito,curry,pizza   |
| Jane  | Shane | eggroll,pizza         | curry,pizza           |
| Jane  | Tom   | eggroll,pizza         | burrito,curry,eggroll |
| Jane  | Tony  | eggroll,pizza         | burrito,pizza         |
| March | Dan   | lutefisk,fadge        | lutefisk,fadge        |
| March | Jack  | lutefisk,fadge        | eggroll,fadge,pizza   |
| Mary  | Alan  | burrito,curry,pizza   | curry,eggroll         |
| Mary  | Jack  | burrito,curry,pizza   | eggroll,fadge,pizza   |
| Mary  | Jane  | burrito,curry,pizza   | eggroll,pizza         |
| Mary  | Sean  | burrito,curry,pizza   | burrito,curry         |
| Mary  | Shane | burrito,curry,pizza   | curry,pizza           |
| Mary  | Tom   | burrito,curry,pizza   | burrito,curry,eggroll |
| Mary  | Tony  | burrito,curry,pizza   | burrito,pizza         |
| Sean  | Alan  | burrito,curry         | curry,eggroll         |
| Sean  | Mary  | burrito,curry         | burrito,curry,pizza   |
| Sean  | Shane | burrito,curry         | curry,pizza           |
| Sean  | Tom   | burrito,curry         | burrito,curry,eggroll |
| Sean  | Tony  | burrito,curry         | burrito,pizza         |
| Shane | Alan  | curry,pizza           | curry,eggroll         |
| Shane | Jack  | curry,pizza           | eggroll,fadge,pizza   |
| Shane | Jane  | curry,pizza           | eggroll,pizza         |
| Shane | Mary  | curry,pizza           | burrito,curry,pizza   |
| Shane | Sean  | curry,pizza           | burrito,curry         |
| Shane | Tom   | curry,pizza           | burrito,curry,eggroll |
| Shane | Tony  | curry,pizza           | burrito,pizza         |
| Tom   | Alan  | burrito,curry,eggroll | curry,eggroll         |
| Tom   | Jack  | burrito,curry,eggroll | eggroll,fadge,pizza   |
| Tom   | Jane  | burrito,curry,eggroll | eggroll,pizza         |
| Tom   | Mary  | burrito,curry,eggroll | burrito,curry,pizza   |
| Tom   | Sean  | burrito,curry,eggroll | burrito,curry         |
| Tom   | Shane | burrito,curry,eggroll | curry,pizza           |
| Tom   | Tony  | burrito,curry,eggroll | burrito,pizza         |
| Tony  | Jack  | burrito,pizza         | eggroll,fadge,pizza   |
| Tony  | Jane  | burrito,pizza         | eggroll,pizza         |
| Tony  | Mary  | burrito,pizza         | burrito,curry,pizza   |
| Tony  | Sean  | burrito,pizza         | burrito,curry         |
| Tony  | Shane | burrito,pizza         | curry,pizza           |
| Tony  | Tom   | burrito,pizza         | burrito,curry,eggroll |
+-------+-------+-----------------------+-----------------------+
56 rows in set (0.00 sec)

mysql>
mysql>
mysql> drop table mytable;
Query OK, rows affected (0.00 sec)

   
    
    
    
    
    
  
Related examples in the same category
1.SET: Combination of up to 255 strings
2.Use SET to have arbitrary combinations
3.Set multiple values
4.To break down a set of observations and show each count as a percentage of the total
5.Select only one value among the set
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.