MySQL MAKE_SET() Function



The MySQL MAKE_SET() function is used to retrieve string values (separated by commas) from a set of values based on the given bit(s).

This function accepts bit values separated by "|" and series of strings as parameters and returns a string where each bit value is replaced with the corresponding value from the series of strings.

Syntax

Following is the syntax of MySQL MAKE_SET() function −

MAKE_SET(bits,str1,str2,...)

Parameters

This function takes a numeric value and a list of strings as parameter.

Return Value

This function returns a comma-separated string where each bit position of the integer corresponds to inclusion or exclusion of the respective string.

Example

In the following example, we are using the MAKE_SET() function with a bit value of 3. The binary representation of 3 is '11', i.e. having both the positions as 1. Hence, it returns 'apple' and 'banana' from the series of strings 'apple', 'banana', 'mango', and 'grapes' since their position corresponds to the binary bits −

SELECT MAKE_SET(3,'apple','banana','mango', 'grapes');

Following is the output of the above code −

MAKE_SET(3,'apple','banana','mango', 'grapes')
apple,banana

Example

Here, the first bit is 1 i.e. 001, the rightmost digit is 1 hence it returns 'apple' (first position), second bit is 4 i.e. 100, the third position is 1 (from right to left), hence it returns 'mango' −

SELECT MAKE_SET(1|4,'apple','banana','mango', 'grapes');

Output of the above code is as shown below −

MAKE_SET(1|4,'apple','banana','mango', 'grapes')
apple,mango

Example

Even if multiple bit values are used repeatedly, the resulting string includes those values only once (no duplicates) −

SELECT MAKE_SET(3|3|3|3,'apple','banana','mango', 'grapes');

The output obtained is as follows −

MAKE_SET(3|3|3|3,'apple','banana','mango', 'grapes')
apple,banana

Example

If you pass NULL values as bits in the series of strings, they are not included in the result (no NULL values) −

SELECT MAKE_SET(3|2,'Java', NULL, 'JavaFX','OpenCV', NULL, 'CoffeeScript', 'WebGL');

The result produced is as follows −

MAKE_SET(3|2,'Java', NULL, 'JavaFX','OpenCV', NULL, 'CoffeeScript', 'WebGL')
Java

Example

If any of the arguments passed to this function is NULL, it returns NULL −

SELECT LOCATE(NULL, 'Tutorialspoint');

Following is the output of the above code −

LOCATE(NULL, 'Tutorialspoint')
NULL

Example

You can also pass a series of numbers instead of strings as arguments to this function −

SELECT MAKE_SET(5, 558, 5558, 66988, 6547, 669, 368);

After executing the above code, we get the following output −

MAKE_SET(5, 558, 5558, 66988, 6547, 669, 368)
558,66988
mysql-make-set-function.htm
Advertisements