MySQL | MAKE_SET method
Start your free 7-days trial now!
MySQL's MAKE_SET(~) method returns a set of comma-separated substrings that have the corresponding bit in the provided bit value(s).
Parameters
1. bits | bits
A set of bits that specifies which strings are returned in the returned comma-separated substring.
2. str1 | string
A string to be appended to the return string if it has the corresponding bit specified in bits. Any number of strings may be provided.
Examples
Basic explanation
To return a string based on bits arguments 4:
        
        
            
                
                
                    SELECT MAKE_SET(4, 'a', 'b', 'c');
                
            
            +-------------------------+| MAKE_SET(4,'a','b','c') |+-------------------------+| c                       |+-------------------------+
        
    Representing 4 in binary is 100. Reading the binary from the right: 
- The first bit controls whether the first string - 'a'is appended to the return value. As the first bit is- 0, we do not append- 'a'to the return string.
- The second bit controls whether the second string - 'b'is appended to the return value. Again as the bit is- 0, we do not append- 'b'to the return string.
- Finally the third bit controls whether the third string - 'c'is appended to the return value. As the third bit is- 1, we do append- 'c'to the return string. Indeed we see our return value is simply- 'c'.
Multiple bits
In the first example we only provided a single bits value, but we can use a pipe to specify a set of multiple bits:
        
        
            
                
                
                    SELECT MAKE_SET(2 | 4, 'a', 'b', 'c', 'd', 'e', 'f');
                
            
            +-----------------------------------------+| MAKE_SET(2 | 4,'a','b','c','d','e','f') |+-----------------------------------------+| b,c                                     |+-----------------------------------------+
        
    Binary of 2: 10
Binary of 4: 100
We return the second and third strings from the provided set of string arguments as the second bit of binary of 2 is a set bit ('1') and the third bit of binary of 4 is a set bit. Notice the returned strings are comma separated.
